我有一个表单,其中一个控件是formGroups的formArray。我为formGroups中的一些控件设置了自定义验证器。验证器工作正常,如果我在某些控件无效时检查formArray的有效性状态,那么formArray也无效。但问题是,尽管formArray的状态无效,但表单的状态有效。
就像表单忽略了formArray控件的状态一样。
这就是它的工作方式?
据我所知,FormArray确实会评估其子组,只是不会得到更新或有效性更改的通知。但是您可以手动执行,例如将FormGroups更改事件传播到数组上。
只是一个未经测试的草图,但它应该是这样的。
const formGroup1: FormGroup = this._formBuilder.group({
element: [null, [Validators.required]],
});
const formArray: FormArray = this._formBuilder.array([
formGroup1
]);
// the controls should be an array of formGroups here.
const valueSubscription: Subscription = this.formArray.controls[0].valueChanges.subscribe(() => {
this.formArray.updateValueAndValidity();
}