如何正确绑定角4中的ngModel数组?
问题描述:
我们假设我有一个数组[1,2,3]。我想迭代所有项目并将每个项绑定到ngModel。当我在更改第一个元素后运行此代码时,第二个元素获得相同的值。有什么问题?如何正确绑定角4中的ngModel数组?
<div *ngFor="let x of array; let i = index;">
<input type="number" [(ngModel)]="x[i]">
</div>
答
ngFor
默认使用对象标识对值进行比较,这打破时的原始值(数字,字符串,布尔值)被使用,因为改性当它们改变同一性)。使用trackBy
允许配置ngFor到ZSE指数,而不是身份:
<div *ngFor="let x of array; let i = index;trackBy:trackByIdx">
<input type="number" [(ngModel)]="x[i]">
</div>
trackByIdx(index: number, obj: any): any {
return index;
}
只要'[(ngModel)] =“x”'应该可以工作 –
https://stackoverflow.com/questions/40863074/ngfor-behaviour-on-primitive-data-type/40863118#40863118 –