【发布时间】:2018-06-17 08:54:55
【问题描述】:
我正在创建一个带有 mat-select 的反应式表单。
<mat-form-field>
<mat-select placeholder="Salutation*" formControlName="salutation">
<mat-option *ngFor="let salutation of salutations" [value]="salutation.id">
{{ salutation.label }}
</mat-option>
</mat-select>
</mat-form-field>
表格:
this.form = this.fb.group({
person: this.fb.group({
salutation: ['', Validators.required],
firstName: ['', Validators.required],
lastName: ['', Validators.required],
email: ['', Validators.required]
})
});
我需要根据其他输入值禁用/启用此选择。 由于反应形式不再支持 [disabled],因此我使用了以下内容
this.form.get('person').get('salutation').disable();
问题是当我尝试使用
启用选择返回时this.form.get('person').get('salutation').enable();
它只是不起作用。任何想法为什么?
PS:使用 disabled 属性可以正常工作,但会引发警告
看起来您正在使用 disabled 属性和响应式表单指令。如果将 disabled 设置为 true 当您在组件类中设置此控件时,disabled 属性实际上将在 DOM 中设置为 你。我们建议使用这种方法来避免“检查后更改”错误。
Example:
form = new FormGroup({
first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),
last: new FormControl('Drew', Validators.required)
});
谢谢!
【问题讨论】:
-
试试这个
this.form.controls['saluation'].disabled = true; -
@DeepakKumarTP disabled 属性是只读的
-
同样的问题。使用角度 6.1.7,形式 6.1.7,材料 6.4.7
-
我也有这个问题。是角度版本问题吗?因为我使用的是 5.2.11 :/
标签: angular material-design angular-material2