gpt4 book ai didi

javascript - 只是对绑定(bind)在 angularjs 中的工作方式感到困惑

转载 作者:行者123 更新时间:2023-11-30 09:29:57 25 4
gpt4 key购买 nike

我已经在 angularjs 中创建了一个 CRUD,这让我想知道为什么当我更改 vm.userlistData2 的值时它也会更改正在显示的 vm.userlistData..

这是我如何使用服务获取数据

 dataservice.getUserProfile(vm.userId).then(function (data) {
vm.userlistData = data;
vm.userlistData2 = data;
});

最佳答案

这是因为 userlistData 和 userlistData2 共享同一个对象引用。您可以使用 object.assign 通过为 userlistData2 创建一个新的对象引用来避免这种情况:

vm.userlistData = data;
vm.userlistData2 = Object.assign({}, data);

进阶数据结构和JS Hint推荐你angular.copy用法:angular.copy(源, [目标]);

你的例子: angular.copy(data,vm.userlistData); angular.copy(data,vm.userlistData2);

  • angular 自动进行内存管理,因此无需担心创建新引用。

关于javascript - 只是对绑定(bind)在 angularjs 中的工作方式感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46928111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com