我想根据其他一些表单值对某些属性应用条件验证。我已经提到了一些答案 Angular2: Conditional required validation ,但那些不能满足我的需要。因为我必须在我的大型企业应用程序的 40 多个表单(大约 30 个字段)中实现条件验证。我不想在每个组件中编写相同的代码并更改 FormControl 名称。我不知道如何通过指令实现这一点。
如果年龄控制值 v 大于 18,则需要提供许可证号字段。
这是我的代码:
this.userCustomForm = this.angularFormBuilder.group({
age:['',Validators.required],
licenseNo:[''] // Here I want to apply conditional required validation.
});
在我的应用程序中,有些情况下我想根据嵌套的 FormGroup
或 FormArray
值设置条件验证。
请指导我,我该如何实现。
最佳答案
对我来说,它像这样完美地工作:
this.userCustomForm.get('age').valueChanges.subscribe(val => {
if (condition) {
this.userCustomForm.controls['licenseNo'].setValidators([Validators.required]);
} else {
this.userCustomForm.controls['licenseNo'].clearValidators();
}
this.userCustomForm.controls['licenseNo'].updateValueAndValidity();
});
您必须 updateValueAndValidity 才能使更改生效。
关于angular - Angular react 形式的条件要求验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52866016/