Я столкнулся с проблемой в AngularJS 1.6
Есть некоторые недоразумения.
Я перебираю массив объектов с именем aList
, который содержит изменяемые объекты в части HTML.
<div ng-repeat="item in aList>
<a ng-click = "updateDataFun(item)">Click</a>
</div>
Теперь в контроллере у меня есть это
constructor(){
this.updateData = {};
}
updateDataFun(item){
// this.updateData = Object.assign({}, item); // this solve the issue.
this.updateData = item;
}
cancelUpdate(){
this.updateData = {}
}
Теперь в модальном режиме у меня что-то подобное <input ng-model="updateData.name">
Если я изменю что-нибудь (имя, атрибут updateData) через модальное окно и нажму cancelUpdate()
, изменения отразятся в массиве aList
.
Вот несколько вопросов:
- В методе <86663334347806> присвоение является эталонным присвоением (предположим). Я прав? Так что, если я перейду на
this.updateData
через модальное окно, это отразится наitem
. Кроме того, измените значение индексаaList
, с которым связаноitem
. - Если да, то при вызове
cancelUpdate()
this.updateData
будет{}
. Почему это не отражаетitem
? <86663334347835>Должно быть{}
.
Однако, если я раскомментирую this.updateData = Object.assign({}, item);
и прокомментирую this.updateData = item;
, тогда все заработает.
@Клэйес, Tnx. Я изменил его.