这是我的控制器。
angular.module('xyz').controller('MyController', function($scope, $rootScope) {
$scope.myVar = 123;
$rootScope.myVar = $scope.myVar;
});
现在的问题是,由于某种原因,我还必须在$rootScope中保存相同的值。但是在我保存此值后,如果用户更新视图中的值,该值将在$scope中更新。但是由于绑定$rootScope优先,因此角度更新了$scope.myVar
的值与$rootScope.myVar
中的内容。
有没有办法在这两个变量之间不创建引用。
如果它是一个基元类型,如数字/字符串/布尔值/等......它不会是一个引用(你的示例是这个类型)。如果是对象/函数/数组/等。会的。因此,要销毁引用,您可以使用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
});