【发布时间】:2019-12-05 00:31:40
【问题描述】:
我正在尝试使用 FormGroups 数组来验证我的表单。
在添加 FormGroups 数组之前它正在工作(材料步进器验证目的)。
HTML:
<form [formGroup]="formGroup" (ngSubmit)="submit()">
<mat-form-field>
<input matInput formControlName="fullName" required>
<mat-error *ngIf="formGroup.controls.formArray.controls['fullName'].errors?.required">Required</mat-error>
</mat-form-field>
<mat-form-field>
<input matInput formControlName="shortName" required>
<mat-error *ngIf="formGroup.controls.formArray.controls['shortName'].errors?.required">Required</mat-error>
</mat-form-field>
</form>
TS:
get formArray(): AbstractControl | null { return this.formGroup.get('formArray'); }
this.formGroup = this.fb.group({
formArray: this.fb.array([
this.fb.group({ fullName: [null, [Validators.required]] }),
this.fb.group({ shortName: [null, [Validators.required]] }),
])
});
我做错了什么?
【问题讨论】:
-
这看起来很奇怪......通常当我们有一个表单数组时,它包含具有相同表单控件的表单组。为什么需要 formarray 和嵌套的 formgroups?为什么不只是表单控件?
-
这样我就可以使用线性角度的材料步进器而无需创建额外的 FormGroups
标签: angular angular-reactive-forms formarray formgroups