在我的AngularJS项目中,我无法在不同的控制器之间共享复制对象的数据。
如果我在代码中设置属性但是如果我复制了对象,那么我能够正确地共享数据,那么它似乎无法正常工作。
在JSFiddle的代码块中,您会看到我有两个对象User
和OriginalUser
。
加载FirstCtrl
后,我会将User
对象复制到OriginalUser
对象。
您会看到虽然User
中FirstCtrl
SecondCtrl
对象的值可以在OriginalUser
中访问,但FirstCtrl
的数据只能在{{1}}中访问}。
答案 0 :(得分:1)
这是因为你没有更新OriginalUser数据,而是使用angular.copy函数创建一个新变量。
您正在寻找的是angular.extend,它将用户属性复制到原始用户。现在,两个控制器都使用相同的对象实例。
你的第一个控制者:
function FirstCtrl($scope,User, OriginalUser){
$scope.user = User;
$scope.o_user = angular.extend(OriginalUser, $scope.user);
}
你的小提琴是最新的。