Angular 8 FormControl禁用不发送到子组件



我的代码中有以下自定义输入:

<nivel-servico-slider formControlName="fornecedor_a"></nivel-servico-slider>

它具有Angular创建自定义输入指南中描述的自定义输入的所有属性,但是当我将FormControl设置为禁用时:

this.form.get('fornecedor_a').disable();

disabled属性未设置为自定义组件(<nivel-servico-slider>(,这不会触发组件内部disabled的get/settier:

@Input()
get disabled(): boolean {
return this.internalDisabled;
}
set disabled(value: boolean) {
console.log(value);
this.internalDisabled = coerceBooleanProperty(value);
if (this.internalDisabled) {
this.input.disable();
} else {
this.input.enable();
};
this.stateChanges.next();
}

我做错了什么?

如果在自定义组件上使用formControlName,则很可能实现了自定义值访问器https://angular.io/api/forms/ControlValueAccessor

因此;禁用";,您应该实现setDisabledState(isDisabled: boolean)?: void

最新更新