У меня есть родительский элемент, который хранит переменную value и передает эту переменную с двусторонней привязкой данных к дочернему компоненту. Как родитель может узнавать о любых изменениях этой переменной?
@Component({
selector: 'parent-control',
templateUrl: './parent.component.html',
styleUrls: ['./parent.component.scss']
})
export class Parent Component{
value: string
}
и в родительском html
<child-input-1-component [(value)]="value"></child-input-1-component>
Дочерний компонент является входом, для простоты я помещаю только один, но в реальном приложении у меня есть несколько таких компонентов, которые необходимо динамически отображать с помощью ngSwitch.
Каждый раз, когда пользователь что-то вводит в любой из этих дочерних компонентов, мне нужно, чтобы родительский элемент вызвал функцию.
Я мог бы использовать @Output для каждого дочернего элемента, но это выглядит не очень элегантно, и, кроме того, значение обновляется в реальном времени на родительском элементе, мне просто нужно знать, когда.
Есть ли в angular что-то вроде «наблюдателя», который проверяет изменения значений?
[(value)]="value"
- это просто сокращенное обозначение для[value]="value" (valueChange)="value = $event"
. Так что просто добавьте туда свой вызов функции. - person JB Nizet   schedule 05.11.2018