Передача данных в сеттер дочернего компонента в Angular
Можно сделать так, чтобы данные из родительского компонента попадали в сеттер приватного свойства. Давайте посмотрим на примере. Пусть у нас есть приватное свойство с сеттером и геттером:
app/user/user.component.tsclass UserComponent {
private _name: string = '';
set name(name: string) {
if (name.length < 3) {
this._name = name;
} else {
console.log('error');
}
}
get age() {
return this._userAge;
}
}
Для примера давайте сделаем сеттер возраста, в котором реализуем проверку переданных данных. Также сделаем геттер для вывода свойств пользователя:
app/user/user.component.tsclass 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;
}
}
Теперь передадим данные из родительского компонента в дочерний:
app/app.component.html<user-data name="john"></user-data>
А в дочернем компоненте выведем переданное имя на экран:
app/user/user.component.html<p>{{ name }}</p>
Задание 1
Объясните, почему приватное свойство _name
начинается с символа подчеркивания.
Задание 2
Реализуйте сеттеры и геттеры для названия продукта и его цены, которые будут передаваться из родительского компонента.