[英]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.