源代码在angular.copy后失去引用



我有一个项目列表。要编辑一个,我只需通过一个函数传递它。

<ul>
    <li ng-repeat="item in itemList" ng-click="edit(item)">{{item.name}}</li>
</ul>

在函数内部,我复制了该项,以便用户可以在不直接影响它的情况下进行编辑。我想只在成功的表单响应后更新项目。

itemCopy = angular.copy(item);
// pass itemCopy to a form, edit, submit and get response
if (response.success) {
    item = itemCopy; // Update item with new data
    // angular.extend(item, itemCopy); <--- THE RIGHT WAY TO UPDATE
}

但是当我替换'item'内容时,它不会更新视图中的项目。看起来'item'失去了与视图的连接。我做错了什么?

您正在创建一个新的对象引用,它将破坏其他引用

使用angular.extend(item, itemCopy);,它将第二个属性/值合并到第一个

Reference: angular.extend() docs

最新更新