Trasmissione dei dati al setter di un componente figlio in Angular
Si può fare in modo che i dati dal componente genitore arrivino nel setter di una proprietà privata. Vediamo con un esempio. Supponiamo di avere una proprietà privata con setter e getter:
class UserComponent {
private _name: string = '';
set name(name: string) {
if (name.length < 3) {
this._name = name;
} else {
console.log('error');
}
}
get age() {
return this._userAge;
}
}
Per l'esempio, creiamo un setter per l'età, in cui implementeremo un controllo dei dati trasmessi. Creiamo anche un getter per visualizzare le proprietà dell'utente:
class UserComponent {
private _name: string = '';
@Input()
set name(name: string) {
if (name.length > 3) {
this._name = name;
} else {
console.log('error');
}
}
get name() {
return this._name;
}
}
Ora trasmettiamo i dati dal componente genitore al figlio:
<user-data name="john"></user-data>
E nel componente figlio visualizziamo il nome trasmesso sullo schermo:
<p>{{ name }}</p>
Spiegate perché la proprietà privata _name
inizia con il carattere underscore.
Implementate i setter e i getter per il nome del prodotto e il suo prezzo, che saranno trasmessi dal componente genitore.