我正在使用角度反应形式,以在我的应用程序中构建形式。我已经将验证添加到表单中。表格真的很简单:
ngOnInit() {
this.form = this.fb.group({
minQty: ['', Validators.required],
maxQty: ['', Validators.required]
});
this.form.valueChanges.subscribe(val => this.changeFn(val));
}
已应用了必需的验证器。我意识到表单组对象是INVALID,但是errors属性没有填充控件本身的错误。我不知道这是预期的行为还是出了什么问题。
所以我在控制台中看到了
在这种情况下,this.form.errors
是否不应该包含汇总错误对象以及所有子控件错误?
更新:
只是做了一个汇总整个表格中的错误的函数。我没有用FormArray进行测试。
public aggregateErrors(form: FormGroup | FormArray, errors: ValidationErrors): void {
Object.keys(form.controls).forEach((key: string) => {
const abstractControl = form.controls[key];
if (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {
this.aggregateErrors(abstractControl, errors);
}
if (abstractControl.errors) {
errors[key] = abstractControl.errors;
}
});
}
答案 0 :(得分:1)
错误属于您已对其应用验证的控件,而不是父控件。
没有错误汇总,但是表单组可以进行自己的验证。