2017-01-22 7 views
3

アイテムを配列にプッシュすると、アイテムがプッシュされますが、配列内のすべてのアイテムが最後にプッシュされたアイテムと同じになるという問題があります。ここ角2:Array.pushが正常に動作しない

pushspecification() { 
     this.specificationSaveDetailList.push(this.specificationsaveDetail); 
    } 

plunkerコードである:plunker_Code
iはドロップダウンからアイテムを選択し、説明を提供し、ボタンやテーブルを追加クリックこのplunker例では、アレイ・アイテムが取り込まれています。

答えて

5

配列要素への参照を使用して同じオブジェクトをプッシュしてバインドするためです。だから、specificationsaveDetailオブジェクト参照を更新するときには、配列のすべての要素が同じ要素の参照として更新されます。

新しいオブジェクトコピーを作成し、配列内にプッシュする必要があります。あなたが使用することができ、同じのためにObject.assign

pushspecification() { 
    this.specificationSaveDetailList.push(Object.assign({}, this.specificationsaveDetail)); 
} 

Demo Plunker

+0

ありがとうございました。それはうまくいった。 – Amir

+0

@Amir嬉しいことを知って、ありがとう:) –

関連する問題