Jak*_*134 5 angular angular-reactive-forms
我试图弄清楚如何实现setDisabledState作为接口一部分的函数ControlValueAccessor,但我无法弄清楚如何从组件本身的外部实际触发该函数。
在我有的组件内
control = new FormControl();
setDisabledState(isDisabled: boolean): void {
this._renderer.setProperty(this.formField.nativeElement, 'disabled', isDisabled);
}
Run Code Online (Sandbox Code Playgroud)
如果我在组件的 NgOnInit 中执行以下操作,这会将我的禁用样式设置得很好。但我希望能够通过属性绑定来控制组件的禁用状态。
this.tenantListFormControl.disable();
Run Code Online (Sandbox Code Playgroud)
然而,实际上没有任何东西触发该函数。
我试过了
<app-custom-control [attr.disabled]="true"></app-custom-control>
<app-custom-control disabled></app-custom-control>
<app-custom-control [disabled]="true"></app-custom-control>
Run Code Online (Sandbox Code Playgroud)
最后一个甚至无效,因为“任何适用的指令等均未提供禁用的属性...”,因为我没有@Input()在组件上的任何位置禁用。无论如何这都没有帮助,因为一旦我设置了它,我应该如何处理它,我无法订阅它并以这种方式触发 setDisabledState 函数,因为它不是可观察的。
我如何实际触发此功能并禁用我的组件?
不确定是否没有看到更多代码,但我相信您确实需要
@Input() disabled: boolean = false;
Run Code Online (Sandbox Code Playgroud)
在组件/视图中使用一些逻辑来实际处理禁用时应该发生的情况。例如,我有一个自定义控件,它在按钮周围包装了一些逻辑,因此我在[disabled]="disabled"视图中的按钮上有属性。
如果这没有帮助,那么我需要知道自定义控件的用途是什么,以及 Angular / 浏览器如何知道如何禁用它?
| 归档时间: |
|
| 查看次数: |
4299 次 |
| 最近记录: |