簡體   English   中英

如何在整個角度JS應用程序上觀看$ rootScope

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM