У меня тоже было это сомнение несколько дней назад. И то, что я выяснил, - ngOnChanges
не срабатывает таким образом. ngOnChanges запускается только при изменении ввода компонента извне. т.е. предположим, что у вас есть
<app-selector [editMode]="true"></app-selector>
И это изменится на
<app-selector [editMode]="false"></app-selector>
Теперь только угловые будут запускать ngOnchanges. Если вы хотите что-то делать всякий раз, когда свойство этой переменной изменяется, вы должны использовать для этой переменной методы установки и получения, например,
private _viewMode: boolean;
@Input() set viewMode(mode) {
this._viewMode = mode;
this.populateForm(this._event);
}
get viewMode() {
return this._viewMode;
}
Теперь вы можете вызывать свою функцию как this.setValue()
, и ваша форма будетзаселять каждый раз.