我們假設我有一個數組[1,2,3]。我想迭代所有項目並將每個項綁定到ngModel。當我在更改第一個元素後運行此代碼時,第二個元素獲得相同的值。有什麼問題?如何正確綁定角4中的ngModel數組?
<div *ngFor="let x of array; let i = index;">
<input type="number" [(ngModel)]="x[i]">
</div>
我們假設我有一個數組[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 –