Есть ли способ прослушать изменение @Input?angular2 @input - обнаружение изменений
В следующем примере я хотел бы получать информацию, когда изменяется значение 'inputData'.
@Input() inputData: InputData;
Есть ли способ прослушать изменение @Input?angular2 @input - обнаружение изменений
В следующем примере я хотел бы получать информацию, когда изменяется значение 'inputData'.
@Input() inputData: InputData;
Да, вы можете использовать OnChanges
жизненный цикл событие:
@Input() inputData: InputData;
ngOnChanges() {
console.log(this.inputData);
}
Подробнее о событиях жизненного цикла угловых в here.
Вы можете слушать OnChanges
компонент события жизненного цикла внутри компонента
ngOnChanges(model: SimpleChanges){
console.log(model)
}
вы можете использовать что-то вроде:
Input('value')
set value(val: string) {
this._value = val;
console.log('new value:', value); // <-- do your logic here!
}
Дополнительная информация доступна на этом link
вы также можете взять посмотреть на this article
import { Component, Input, OnChanges, SimpleChange } from '@angular/core';
export class Demo implements OnChanges {
@Input() inputData: InputData;
ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {
if (changes['inputData'] && this.inputData) {
//your logic work when input change
}
}
}