[英]How to watch $rootScope on entire angular JS application
我正在使用angular 1.5.6,我的应用程序由几个模块组成,每个模块都有自己的视图和控制器。 我的问题是如何在每个这些控制器上监视$ rootScope。 我需要在所有控制器上观看$ rootScope,因为我在$ rootScope.account上有一个全局变量,并且当用户刷新页面$ rootScope.account时,它被清除并且我的所有应用程序崩溃。 我想在所有模块上观看$ rootScope.account,所以当用户刷新时,我可以处理刷新并重定向到登录页面。 我认为也许我会在所有模块上注入一项服务?
您可以通过两种简单的方法来实现。
首先:将$rootScope
包含在您的控制器中:
app.controller('MyCtrl', [
'$rootScope',
'$scope',
function($rootScope, $scope) {
$rootScope.$watch('myvar', function(newValue, oldValue) {
doSomething();
}
//...
}
]);
第二。 如果在其他作用域中没有同名的变量,则可以避免使用$rootScope
而仅使用$scope
。 这将起作用,因为每个$scope
都继承自$rootScope
。
app.controller('MyCtrl', [
'$scope',
function($scope) {
$scope.$watch('myvar', function(newValue, oldValue) {
doSomething();
}
//...
}
]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.