如何正确绑定角4中的ngModel数组?

如何正确绑定角4中的ngModel数组?

问题描述:

我们假设我有一个数组[1,2,3]。我想迭代所有项目并将每个项绑定到ngModel。当我在更改第一个元素后运行此代码时,第二个元素获得相同的值。有什么问题?如何正确绑定角4中的ngModel数组?

<div *ngFor="let x of array; let i = index;"> 
    <input type="number" [(ngModel)]="x[i]"> 
</div> 
+0

只要'[(ngModel)] =“x”'应该可以工作 –

+0

https://stackoverflow.com/questions/40863074/ngfor-behaviour-on-primitive-data-type/40863118#40863118 –

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; 
} 

我已经通过@君特Zöchbauer一年前回答同样的问题,我希望它可以帮助别人路过的那样:

Angular2 ngModel inside of ngFor

由于去冈特了!