- 在FormGroup中添加FormArray字段时,可以针对每个FormControl定义自定义验证器,以便验证表单中的每个字段。
this.form = this.formBuilder.group({
items: this.formBuilder.array([
this.formBuilder.control('', [Validators.required, this.customValidator])
])
});
- 自定义验证器需要返回一个对象或null。在自定义验证器中,可以检查表单字段的值是否符合特定的条件,并根据条件返回一个对象,其中包含多个错误消息。
customValidator(control: AbstractControl): { [key: string]: boolean } | null {
if (control.value.length < 3) {
return { 'minLength': true };
}
return null;
}
- 可以通过循环FormArray中的每个FormControl找到所有的错误消息。
getErrorMessage(index: number) {
const control = (this.form.get('items') as FormArray).controls[index];
return control.hasError('required') ? '必填' :
control.hasError('minLength') ? '长度必须至少为3' :
'';
}