有一个简单的解决方案,例如只使用一个异步验证器。
然后对它们应用验证器。
例子:
this.mySubForm = this.fb.group({
field1: ['', [Validators.required]],
field2: ['', [Validators.required]],
...
field20: ['', [Validators.required]]
}, this.validatorAllFields.bind(this)
});
并按如下方式定义异步验证器:
validatorAllFields(control: FormGroup): any {
if (control) {
if(control.value.field1 don't contain special char ⦠&&
control.value.field2 don't contain special char ⦠&&
â¦
control.value.field20 don't contain special char &&)
//validation is ok in this case
return null;
else
//validation fails here...
return {'formInvalid': 'true'}
} else {
return null;
}
}
你可以这样做,而不需要任何额外的包,它将工作。
你可以用
formGroupName
对于子表单,甚至可以避免使用子表单。