首页 > 解决方案 > 反应式表单 - 控件无效但表单仍然有效

问题描述

考虑这段代码:

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() 但没有任何变化。

标签: angularangular-reactive-forms

解决方案


您可能禁用了其他控件,这会禁用它们的验证


推荐阅读