Angular material 更改matInput的禁用属性值

Angular material 更改matInput的禁用属性值,angular-material,angular6,angular-material2,metronic,Angular Material,Angular6,Angular Material2,Metronic,我有一个与现有问题有关的问题 无法使用禁用matInput元素 建议的答案很好: ngOnInit() { this.form = this.fb.group({ name: new FormControl({ value: '', disabled: this.disabled }) }); 但当我将此.disabled值更改为true时,禁用属性不会更改。有没有办法更改matInput的disabled属性?您不能使用该表单,因为当您创建表单控件时,您正在传递该值,在您的情况下,t

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

无法使用禁用matInput元素

建议的答案很好:

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

但当我将此.disabled值更改为true时,禁用属性不会更改。有没有办法更改matInput的
disabled
属性?

您不能使用该表单,因为当您创建
表单控件时,您正在传递该值,在您的情况下,
this.disabled
的值。您不是绑定属性,您只是传递一个值以进行一些检查,此值不反映输入属性的更改

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

let control = this.form.get('name')
control.disabled ? control.enable() : control.disable();
<button (click)="this.form.get('name').enable()">Enable</button>
显然,您可以将其直接放入模板中的单击事件中,如下所示:

let control = this.form.get('name')
control.disabled ? control.enable() : control.disable();
<button (click)="this.form.get('name').enable()">Enable</button>
启用