当我将项目推入数组时,项目被推送,但问题是数组中的所有项目都与推送的最后一项相同。
pushspecification() {
this.specificationSaveDetailList.push(this.specificationsaveDetail);
}
以下是plunker代码:plunker_Code
在这个plunker示例中,我从下拉列表中选择项目并提供说明并单击“添加”按钮,表格中将填充数组项。
答案 0 :(得分:5)
因为你绑定了同一个对象及其对数组元素的引用。因此,当您更新specificationsaveDetail
对象引用时,它会更新数组的所有元素,因为它们是相同元素的引用。
要使其工作,您必须创建一个新的对象副本并将其推送到数组中。为此,您可以使用Object.assign
pushspecification() {
this.specificationSaveDetailList.push(Object.assign({}, this.specificationsaveDetail));
}
答案 1 :(得分:0)
您可以这样使用:
Array.push(Object.assign({}, this.utility));
答案 2 :(得分:0)
将元素添加到数组时,请使用以下方法。
const element: IEmployee[] = []; //initialize the array
element.push(employee);