这是我的控制器。
angular.module('xyz').controller('MyController', function($scope, $rootScope) {
$scope.myVar = 123;
$rootScope.myVar = $scope.myVar;
});
现在的问题是,出于某种原因,我还必须在$ rootScope中保存相同的值。但在保存此值后,如果用户更新视图中的值,则值将在$ scope中更新。但由于绑定$ rootScope优先,因此角度更新$scope.myVar
的值与$rootScope.myVar
中的内容。
是否存在不在这两个变量之间创建引用的方法。
答案 0 :(得分:2)
如果它是一个基本类型,如数字/字符串/布尔/等...它不会成为一个引用(你的例子就是这种类型)。如果它是一个对象/函数/数组/等..它将是。因此要破坏参考,您需要使用angular.copy:
$rootScope.myVar = angular.copy($scope.myVar);
参考:
angular.module('xyz').controller('MyController', function($scope, $rootScope) {
$scope.myVar = 123;
$rootScope.myVar = $scope.myVar; //won't be a reference
});
angular.module('xyz').controller('MyController', function($scope, $rootScope) {
$scope.myVar = { data: 123 };
$rootScope.myVar = $scope.myVar; //will be a reference
$rootScope.myVar = { data: $scope.myVar.data }; //won't be a reference
});