反应性表单-控件无效,但表单仍然有效

时间:2019-03-20 19:29:14

标签: angular angular-reactive-forms

考虑以下代码:

foo(){
...
    aControl.valueChanges.subscribe(value => {
          if (value == AmountType.FIXED) {
            variableAmount.setValidators(null);
            variableAmount.setValue(null);
            fixedAmount.setValidators(Validators.required);
          }
          else{
            fixedAmount.setValidators(null);
            fixedAmount.setValue(null);
            variableAmount.setValidators(Validators.required);
            console.log(form.valid)
            console.log(form.get('variableAmount').valid)
          }
}

在控制台中打印“ true”然后“ false”。 这种情况怎么发生?表单在其中一个控件无效的情况下如何有效?

我尝试了form.updateValueAndValidity()和form.get('variableAmount')。updateValueAndValidity(),但没有任何变化。

2 个答案:

答案 0 :(得分:0)

我的名为variableAmount的控件已被禁用。在模板中将其更改为只读可修复此错误。

答案 1 :(得分:0)

您可能已禁用其他控件,从而禁用了它们的验证