javascript - 不要在 AngularJS 函数中通过引用传递对象

标签 javascript angularjs

我有一个ng-repeat,它重复无序列表。该列表中的每个项目都有一个按钮,用于调用 AngularJS 函数将该项目添加到另一个列表中。问题在于传递给函数的项是通过引用传递的。这意味着,如果我更新该函数中的属性,那么该对象就会在我的网站中的所有位置更新。

我的问题示例: http://jsfiddle.net/XyUGE/156/

您会看到左侧列表也已更新。但我只想更新传递给函数的对象!所以,我只想查看第二个列表中的更改。

如何解决这个问题?

最佳答案

在 JavaScript 中,一切都是按值传递的。您只是修改引用指向的对象。

您可以使用angular.copy来创建一个复制了顶级引用的新对象。

我添加了

obj = angular.copy(obj);

http://jsfiddle.net/XyUGE/157/

关于javascript - 不要在 AngularJS 函数中通过引用传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30288520/

相关文章:

javascript - 我想在服务器响应之间加载本地存储(使 javascript 代码同步)

javascript - 如何使用 HTML 输入来提供 JavaScript 类

javascript - 如何将第三方库注入(inject)到 angular.js 服务中

javascript - 如何在此处使用 $watch 以便在指令 USING ui-router 之前触发 API

javascript - 如果 LDAP 用户属于特定组,则对其进行身份验证

javascript - 删除少量Keen IO事件"Too many events"错误

javascript - 用额外的方法扩展 Angular 不好吗?

javascript - AngularJs - 我如何才能仅在答案正确时显示答案

css - 如何在两个不同的列中安排 Bootstrap 中的井?

javascript - 如何在 JSF 复合组件中使用 Javascript 中的属性值?