更改 matInput 的禁用属性值

Change disabled attribute value for matInput

我有一个与现有问题相关的问题

无法使用

禁用 matInput 元素

建议的答案很好:

ngOnInit() {
this.form = this.fb.group({
    name: new FormControl({ value: '', disabled: this.disabled })
});

但是当我将 this.disabled 值更改为 true 时 - disabled 属性没有改变。有没有办法更改 matInput 的 disabled 属性?

您不能使用该表单,因为当您创建 FormControl 时,您正在传递该值,在您的例子中是 this.disabled 的值。你没有绑定属性,你只是传递一个值来进行一些检查,这个值不反映输入属性的变化。

您无法通过这种方式实现您的目标,您需要手动启用和禁用您的输入,如下所示:

let control = this.form.get('name')
control.disabled ? control.enable() : control.disable();

显然,您可以将其直接放入模板中的点击事件中,如下所示:

<button (click)="this.form.get('name').enable()">Enable</button>