mat-table 中 FormGroup 的动态验证 FormArray 不起作用
Dynamic validation FormArray of FormGroup in mat-table not works
我在 FormArray 中有 FormGroup。表单创建空,用户填充它。用户可以直接在 mat-table 中编辑字段,但如果用户输入错误的值,验证将不起作用(验证仅在推行时起作用一次)。
我在 stackblitz 中做了一个例子
我怎样才能动态验证所有表单和每行中的字段,并在字段下使用类似于“错误值”的输出标签?
您正在使用 [(ngModel)]
,这适用于模板驱动的表单,模板本身具有验证规则。如果你想要一个 model-driven 表单,你必须将模板绑定到表单和表单控件,或多或少像这样:
<table mat-table [dataSource]="myForm.controls.tableFields.value" [formGroup]="myForm">
<!-- ... -->
<ng-container matColumnDef="product_count" [formGroupName]="'tableFields'">
<th mat-header-cell *matHeaderCellDef>Count</th>
<td mat-cell *matCellDef="let row; let i = index" [formGroupName]="i">
<input [formControlName]="'product_count'" />
我在 FormArray 中有 FormGroup。表单创建空,用户填充它。用户可以直接在 mat-table 中编辑字段,但如果用户输入错误的值,验证将不起作用(验证仅在推行时起作用一次)。 我在 stackblitz 中做了一个例子 我怎样才能动态验证所有表单和每行中的字段,并在字段下使用类似于“错误值”的输出标签?
您正在使用 [(ngModel)]
,这适用于模板驱动的表单,模板本身具有验证规则。如果你想要一个 model-driven 表单,你必须将模板绑定到表单和表单控件,或多或少像这样:
<table mat-table [dataSource]="myForm.controls.tableFields.value" [formGroup]="myForm">
<!-- ... -->
<ng-container matColumnDef="product_count" [formGroupName]="'tableFields'">
<th mat-header-cell *matHeaderCellDef>Count</th>
<td mat-cell *matCellDef="let row; let i = index" [formGroupName]="i">
<input [formControlName]="'product_count'" />