Overførsel af data til en underkomponents setter i Angular
Det er muligt at gøre det således, at data fra forældrekomponenten kommer ind i setteren for en privat egenskab. Lad os se på et eksempel. Antag, at vi har en privat egenskab med en setter og en 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;
}
}
Lad os for eksemplets skyld lave en setter for alderen, hvor vi implementerer en validering af de overførte data. Vi laver også en getter for at udskrive brugerens egenskaber:
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;
}
}
Lad os nu overføre data fra forældrekomponenten til underkomponenten:
<user-data name="john"></user-data>
Og i underkomponenten udskriver vi det overførte navn på skærmen:
<p>{{ name }}</p>
Forklar, hvorfor den private egenskab _name
starter med en understregning.
Implementer setters og getters for produktets navn og dets pris, som vil blive overført fra forældrekomponenten.