У меня есть такой контроль формы:
<input formControlName="myName" dynamicDisable>
Затем настраиваемая директива:
@Directive({
selector: '[formControlName][dynamicDisable]
})
export class DynamicDisableDirective implements AfterContentInit {
@ContentChild(AbstractControlDirective) control: any;
ngAfterContentInit(): void {
console.log(this.control);
}
}
Я хотел бы добавить в директиву элемент владельца директивы как @ContentChild. Элементами-владельцами могут быть любой тип элемента управления формы, например простой FormControl, FormGroup или даже FormArray. FormControlName является потомком AbstractControlDirective. Почему тогда консоль всегда регистрирует undefined?
Примечание: когда я переключаю AbstractControlDirective на NgControl следующим образом:
@ContentChild(NgControl) control: any;
все работает, как ожидалось, экземпляр элемента управления формой вводится и хорошо регистрируется. Однако этот подход можно использовать только для простого FormControl, но не также для групп и массивов.