Angular 6无法使用本地参考禁用启用输入

时间:2019-02-25 07:01:26

标签: angular7 angular-reactive-forms

我在角度应用中使用反应形式。

SELECT * 
FROM  SERVICE_REQ SR 
LEFT JOIN  SR_COBRAND_DATA SR_COB_DATA ON SR.SERVICE_REQ_ID=SR_COB_DATA.SERVICE_REQ_ID
INNER JOIN REPOSITORY rep  ON SR.SR_COBRAND_ID=rep.COBRAND_ID 
LEFT JOIN SR_ASSIGNEE_INFO ASSIGNEE_INFO  ON SR.SERVICE_REQ_ID = ASSIGNEE_INFO.SERVICE_REQ_ID
WHERE SR.SR_COBRAND_ID = 99  

在我的html中,我使用的是

measurement: new FormControl(true),
volume: new FormControl(0)

每当我选中“音量”复选框时,它都应启用“音量”控制。但这不是在启用和禁用之间切换。但是,如果我控制台“ measurement.checked”,则显示是对还是错。如何通过本地引用启用或禁用?谢谢。

2 个答案:

答案 0 :(得分:1)

不能像您的方法那样动态设置“禁用”,以获取更多信息 https://github.com/angular/angular/issues/11271。但是您可以通过onchange中的功能启用或禁用,例如control.enable(),control.disable()

答案 1 :(得分:1)

您可以通过打字稿功能来实现。.

更改代码中的以下行

<input formControlName='volume' type="number" class="form-control input-md" [attr.disabled]="!measurement.checked">

<input formControlName='volume' type="number" class="form-control input-md" [attr.disabled]="disableVolume()">

并在您的ts文件中,添加函数disableVolume()

  disableVolume() {
    if(this.form.get('measurement').value === true) {
      this.form.get('volume').enable();
    } else {
      this.form.get('volume').disable();
    }
  }

工作示例:https://stackblitz.com/edit/angular-form-array-example-cc27c3