Как изменить данные в массиве из шаблона, не влияя на исходные данные в угловых - PullRequest
0 голосов
/ 30 декабря 2018

я хочу изменить и возразить в массиве без изменения исходного массива, так как
в исходном массиве выглядит следующим образом:

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 голосов
/ 31 декабря 2018

Вы можете использовать Object.assign () для клонирования объекта. При его использовании изменения, внесенные в клонированный объект, не будут отражены в исходном объекте в массиве книг

books:Book[] = [{author:"John Doe",title:"Javascript"},{author:"John Doe",title:"Javascript"}]
selectedBook:Book = Object.assign({},Books[1]);

Для получения дополнительной информации о Object.assign () прочитайте ссылку ниже

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...