Javascript 只是对angularjs中绑定的工作原理感到困惑
我已经在angularjs中创建了一个CRUD,这让我想知道为什么当我更改vm.userlistData2的值时,它也会更改正在显示的vm.userlistData 下面是我如何使用服务获取数据的Javascript 只是对angularjs中绑定的工作原理感到困惑,javascript,angularjs,Javascript,Angularjs,我已经在angularjs中创建了一个CRUD,这让我想知道为什么当我更改vm.userlistData2的值时,它也会更改正在显示的vm.userlistData 下面是我如何使用服务获取数据的 dataservice.getUserProfile(vm.userId).then(function (data) { vm.userlistData = data; vm.userlistData2 = data; }); 这是因为userlistData和userlistData2共
dataservice.getUserProfile(vm.userId).then(function (data) {
vm.userlistData = data;
vm.userlistData2 = data;
});
这是因为userlistData和userlistData2共享同一个对象引用。您可以使用object.assign为userlistData2创建新的对象引用来避免此问题:
vm.userlistData=数据;
vm.userlistData2=Object.assign({},data);
Advanced data structure和JS提示建议您使用angular.copy
用法:
复制(源[目的])
你的例子是:
copy(数据,vm.userlistData);
copy(数据,vm.userlistData2)
- angular自动化了内存管理,因此无需担心创建新引用
- 这是因为userlistData和userlistData2共享同一个对象引用。您可以使用object.assign为userlistData2创建新的对象引用来避免此问题:
vm.userlistData=数据;
vm.userlistData2=Object.assign({},data);
Advanced data structure和JS提示建议您使用angular.copy
用法:
复制(源[目的])
你的例子是:
copy(数据,vm.userlistData);
copy(数据,vm.userlistData2)
- angular自动化了内存管理,因此无需担心创建新引用
数据对象的引用。因为两者都只是对同一数据对象的引用。也请尝试角度复制(数据)
是,object.assign不适用于数组。angular.copy Does也请尝试angular.copy(数据)
Yes,Object.assign不适用于数组。是的