反应式表单 - 控件无效但表单仍然有效
Reactive Form - A control is invalid but form is still valid
考虑这段代码:
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() 但没有任何变化。
我的名为 variableAmount 的控件被禁用。在模板中将其更改为只读修复了此错误。
您可能禁用了其他控件,从而禁用了它们的验证
考虑这段代码:
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() 但没有任何变化。
我的名为 variableAmount 的控件被禁用。在模板中将其更改为只读修复了此错误。
您可能禁用了其他控件,从而禁用了它们的验证