如果我们无法访问代码,就很难获得帮助。
In 这次堆栈闪电战 https://stackblitz.com/edit/angular-wmfjhh?file=app/table-basic-example.html我举一个简单的例子。看到我们创建了一个像这样的表单数组
myformArray = new FormArray([
new FormGroup({
name: new FormControl("uno"),
surname: new FormControl("one")
}),
new FormGroup({
name: new FormControl("dos"),
surname: new FormControl("two")
}),
new FormGroup({
name: new FormControl("tres"),
surname: new FormControl("three")
})])
表的数据源是formArray控件。
dataSource = this.myformArray.controls;
这样,“元素”就是一个FormGroup,所以一个单元格可以像
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<td mat-cell *matCellDef="let element">
<input [formControl]="element.get('name')">
</td>
</ng-container>
看到我们使用了[formControl]。那是。 mat-table 迭代 myformArray.controls,这只是 FormGroup 的数组。 FormGroup 就是这个“元素”,因此 element.get('...') 是一个 FormControl。这就是我们可以使用 [formControl]=element.get('...') 的原因
就像我们写的不是 mat-table
<div *ngFor="let element of myformArray.controls">
<input [formControl]="element.get('name')">
<input [formControl]="element.get('surname')">
</div>