簡體   English   中英

如何在 angular 4 中正確地將數組與 ngModel 綁定?

[英]How properly bind an array with ngModel in angular 4?

假設我有一個數組 [1,2,3]。 我想迭代所有項目並將每個項目綁定到 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)]="array[i]">
</div>
trackByIdx(index: number, obj: any): any {
  return index;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM