当组件启动或添加新行时,我正在尝试将ngFor
索引绑定到输入。FormControlName
<tr *ngFor="let item of invForm.controls.tool.controls; let i= index" [formGroupName]="i" >
<td>
<mat-form-field floatLabel='never'>
<input matInput type="number" style="text-align: right" formControlName="Id" value="{{i+1}}" >
</mat-form-field>
</td>
</tr>
我制作了整个示例,请看一下 id 不会从输入中自动获取值。
https://stackblitz.com/edit/invoice-id
经过大量研究,我找到了一个简单的解决方案trackBy: trackByFn
。
<tr *ngFor="let item of invForm.controls.tool.controls; let i= index ;trackBy: trackByFn" [formGroupName]="i" >
和
trackByFn(index, item) {
item.value.Id = index+1
return index;
}