Tietojen välittäminen lapsikomponentin setteriin Angularissa
On mahdollista tehdä niin, että tiedot vanhempakomponentista menevät setteriin yksityiselle ominaisuudelle. Katsotaanpa esimerkkiä. Oletetaan, että meillä on yksityinen ominaisuus setterin ja getterin kanssa:
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;
}
}
Tehdään esimerkiksi ikää setter, jossa toteutamme annettujen tietojen tarkistuksen. Tehdään myös getter käyttäjän ominaisuuksien tulostamiseksi:
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;
}
}
Nyt välitetään tietoja vanhempakomponentista lapsikomponenttiin:
<user-data name="john"></user-data>
Ja lapsikomponentissa tulostetaan annettu nimi näytölle:
<p>{{ name }}</p>
Selitä, miksi yksityinen ominaisuus _name
alkaa alaviivalla.
Toteuta setterit ja getterit tuotteen nimelle ja sen hinnalle, jotka liitetään vanhempakomponentista.