我遇到了一个问题,当我删除并重新添加数组值后,Angular 2模型绑定似乎会保留旧的索引。只有在删除的值是数组开头或中间的索引时,才会出现此问题,这让我想到Angular在删除后仍然保留旧索引。如果我从数组末尾删除一个项目并添加一个新项目,则可以按预期工作。
以下是我的HTML代码:
<div class="row text-center" *ngFor="let date of vm.dates;let i = index;"><!--trackBy:i;-->
<div class="col-md-6 text-right">
<label>Date:</label>
</div>
<div class="col-md-6 text-left">
<input name="Date{{i}}" type="text" class="form-control no-wrap" [(ngModel)]="date.Date" value="{{date.Date}}">
<label *ngIf="showRemoveDate(i)" (click)="removeDate(i)" class="btn btn-danger no-wrap">Remove Date</label>
<label>{{date.Date}}-{{i}}</label>
</div>
</div>
<div class="row text-center">
<div class="col-md-6 text-right">
</div>
<div class="col-md-6 text-left">
<label (click)="addDate()" class="btn btn-danger">Add Date</label>
</div>
</div>
这是我的TypeScript代码:
removeDate(index: number) {
this.vm.dates.splice(index, 1);
}
addDate() {
var date: IDates = {
Id: "",
Date: "05/15/2014"
};
this.vm.dates.push(date);
}
-如果我从三个项目的数组中删除第二个项目,并添加一个新项目,则第二个数组值的文本框与新添加的项目相同,但我的结果视图返回正确的模型数据。
请参见下面的图片: 查看图片