我有一个控制器:
myApp.controller('vistaPreviaCtrl', ['$scope', '$window',
function ($scope, $window) {
angular.element(document).ready(function (){
$scope.my_var = $window.my_var; //once
})
}]);
我希望$ window.my_var中的每个更改都在$ scope.my_var中更改。有办法吗?
答案 0 :(得分:1)
如果$window.my_var
是对象或数组:
myApp.controller('vistaPreviaCtrl', ['$scope', '$window', function ($scope, $window) {
$scope.my_var = $window.my_var;
}]);
$scope.my_var
将指向$window.my_var
引用的同一对象,因此它们本身已经“链接”。
如果$window.my_var
是基元(例如数字,字符串),则需要使用监视来更新本地$ scope的值。:
myApp.controller('vistaPreviaCtrl', ['$scope', '$window', function ($scope, $window) {
$scope.$watch('$window.my_var', function (newVal) {
$scope.my_var = newVal;
});
}]);
我还建议您详细了解JavaScript中的参考和值:https://stackoverflow.com/a/6605700/2943490。