禁用值未呈现

时间:2019-05-24 11:12:16

标签: angular angular7 angular-ngselect

通过模板设置已禁用属性可以正常工作,但是控制台显示以下警告:

disabled warning

<... ... 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();
  }

提前谢谢。...

2 个答案:

答案 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”