只是混淆了如何绑定在angularjs中工作

时间:2017-10-25 08:57:58

标签: javascript angularjs

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

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

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

1 个答案:

答案 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);

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