Есть открытый вопрос, который вы можете найти Angular Проблемы
Есть хорошее решение, которое twit от Алексея Зуева
Решение использовать ловушку жизненного цикла ngOnChanges с вашей директивой.
Вот пример того, как использовать ловушку жизненного цикла ngOnChanges для решения проблемы.
import { NgControl } from '@angular/forms';
import { Directive, Input, OnChanges } from '@angular/core';
@Directive({
selector: '[disableControl]',
})
export class DisableControlDirective implements OnChanges {
@Input('disableControl') disableControl;
constructor(private ngControl: NgControl) {}
ngOnChanges(changes) {
if (changes['disableControl']) {
const action = this.disableControl ? 'disable' : 'enable';
this.ngControl.control[action]();
}
}
}
Полный пример Алексей Зуев