Решение в данной ссылке довольно хакерское и ненадежное.
Пока они не решат проблему, просто защитите выражение с if-s для первого рендеринга:
export class DisabledDirective {
@Input()
set opDisabled(condition: boolean) {
const action = condition ? 'disable' : 'enable';
if(this.ngControl?.control){
this.ngControl.control[action]();
}
}
constructor(private ngControl: NgControl) {}
}
ps .: обратите внимание на новый оператор safe / elvis, который вы также можете использовать в Angular 9 в коде TS :)