【发布时间】:2019-09-08 13:02:41
【问题描述】:
请参考 stackblitz 中的项目 here.
可以看出,我的响应式表单为firstNumber、secondNumber 和thirdNumber。我需要对表单控件thirdNumber 进行验证,使其值不应大于在firstNumber 和secondNumber 中具有最小值的表单控件的值。
只要表单控件thirdNumber 发生更改,组件中的自定义验证器validateThirdNumber 就可以正常工作,但我需要
对表单控件firstNumber 和secondNumber 的更改进行验证,因为验证逻辑可以根据表单控件的更改而更改
firstNumber 和 secondNumber。
为此,我添加了一个更改表单控件firstNumber 和secondNumber 的事件,我将表单控件thirdNumber 标记为touched,但似乎没有触发其验证。
那么,如何在表单控件firstNumber 和secondNumber 更改时触发表单控件thirdNumber 的验证?
另外,为什么 this.myFormGroup 在自定义验证器中有时是未定义的(请参阅 app.componen.ts 中的日志 line:22)即使在将 this 绑定到其表单控件声明并且 this.myFormGroup 在 @987654348 中定义之后@?
【问题讨论】:
-
这里是更新的演示 - stackblitz.com/edit/angular-teofun。你可以使用
updateValueAndValidity()函数。检查一下stackoverflow.com/questions/44759005/…。
标签: angular angular-reactive-forms angular-custom-validators