我已经在angularjs中创建了一个CRUD,它让我想知道为什么当我更改vm.userlistData2的值时,它也会更改正在显示的vm.userlistData。
这里是我如何使用服务获取数据
dataservice.getUserProfile(vm.userId).then(function (data) {
vm.userlistData = data;
vm.userlistData2 = data;
});
答案 0 :(得分:4)
这是因为userlistData和userlistData2共享相同的对象引用。您可以使用object.assign通过为userlistData2创建新的对象引用来避免这种情况:
vm.userlistData = data;
vm.userlistData2 = Object.assign({}, data);
高级数据结构和JS Hint建议您使用angular.copy 用法: angular.copy(source,[destination]);
你的例子: angular.copy(数据,vm.userlistData); angular.copy(数据,vm.userlistData2);