如何在不影响原始数据的情况下从模板修改阵列中的数据

时间:2018-12-30 09:20:46

标签: javascript arrays angular data-binding

我想在不更改原始数组的情况下修改数组中的对象和
原始数组中的内容如下:

books:Book[] = [{author:"John Doe",title:"Javascript"},{author:"John Doe",title:"Javascript"}]
selectedBook:Book = Books[1];

在HTML模板中,我有:

<input [(ngModel)]=selectedBook.name/>
<table>
   <tr *ngFor = "let book of books">
       <td>{{book.name}}</td>
   </tr>
</table>

现在,只要输入值更改,它就会同时反映在“ selectedBook”和数组内的对象上,因此,尽管输入值绑定到复制的对象“ selectedBook”,但表值也会发生更改,因此如何修改数组中位置1的对象而不修改数组中的原始对象

1 个答案:

答案 0 :(得分:0)

您可以使用 Object.assign()克隆对象。通过使用该对象,对克隆对象所做的更改将不会反映到books数组中的原始对象上。

columns

有关Object.assign()的更多信息,请阅读下面的链接

https://googlechrome.github.io/samples/object-assign-es6/