通过模板设置已禁用属性可以正常工作,但是控制台显示以下警告:
<... ... name="Province" id="name="Province" formControlName="Province" [disabled]="this.listValues.length==0">
因此,我的解决方案是通过在后面的代码( .ts文件)进行编码的:
this.listValues= regions;
if (this.listValues.length === 0) {
this.registerForm.get('Province').disable();
} else {
this.registerForm.get('Province').enable();
}
调试代码,我可以确认控件(Province)的状态已从禁用更改为启用,依此类推,但是 html 不会呈现此值/更改。
也尝试过:
<... ... name="Province" id="name="Province" formControlName="Province" [attr.disabled]="this.listValues.length==0">
和:
...
this.registerForm = this.formBuilder.group({
Province: [{ value: '', disabled: this.listValues.length===0}, null],
....
或:
this.listValues= regions;
if (this.listValues.length === 0) {
this.registerForm.controls['Province'].disable();
} else {
this.registerForm.controls['Province'].enable();
}
提前谢谢。...
答案 0 :(得分:1)
在@trichetriche帮助之后发布解决方案。希望它能对其他人有所帮助。
HTML
....
<... ... name="Province" id="name="Province" formControlName="Province" [disabled]="registerForm.get('Province').disabled">
TS
.....
this.listValues= regions;
if (this.listValues.length === 0) {
this.registerForm.get('Province').disable();
} else {
this.registerForm.get('Province').enable();
}
答案 1 :(得分:0)
[disabled] =“ boolean”(对或错)
[disabled] =“ listValues.length == 0?true:false”