Angular 2:Array.push无法正常工作
问题描述:
当我将项目推入数组时,项目被推入,但问题是数组中的所有项目都与最后一个项目推送相同。Angular 2:Array.push无法正常工作
pushspecification() {
this.specificationSaveDetailList.push(this.specificationsaveDetail);
}
这里是plunker代码:plunker_Code
在该plunker实施例I从下拉菜单中选择项目,并提供描述,并单击按钮添加和表被填充有数组项。
答
因为你是绑定推动相同的对象与其对数组元素的引用。因此,当您更新specificationsaveDetail
对象引用时,它将更新数组的所有元素,因为它们是相同元素的引用。
为了使它工作,您必须创建一个新的对象副本并将其推入数组中。那时,同样可以使用Object.assign
pushspecification() {
this.specificationSaveDetailList.push(Object.assign({}, this.specificationsaveDetail));
}
谢谢。这工作。 – Amir
@Amir很高兴知道,谢谢:) –