formArray 内的 Angular formGroup,formGroup 无效,但 `formArray.valid` 为 true

鸿则_*_*鸿则_ 1 angular angular-forms angular-formbuilder

这是我的主要代码:

get emailFormArray() {
  return this.formGroup.get("emails") as FormArray;
}

public ngOnInit() {
  this.formGroup = this.formBuilder.group({
    emails: this.formBuilder.array([]),
  });
  this.addEmailFormGroup();
}

public addEmailFormGroup() {
  this.emailFormArray.controls.push(
    this.formBuilder.group({
      email: ['', Validators.email],
    }),
  );
}
Run Code Online (Sandbox Code Playgroud)

在我的模板中

{{ formGroup.valid }}
{{ emailFormArray.valid }}
<ng-container *ngFor="let email of emailFormArray.controls">
  {{ email.valid }}
  {{ email.get('email').valid }}
</ng-container>
Run Code Online (Sandbox Code Playgroud)

当我输入一个无效的电子邮件时,模板中的结果是true true false false,为什么formGroupemailFormArray是有效的?谢谢!

鸿则_*_*鸿则_ 5

我找到了原因。我应该使用this.emailFormArray.push而不是this.emailFormArray.controls.push