angulajs 如何在controller 之間共享數據

當在一個controller中 經過設置$scope的數據,來影響其它control的範圍時,可使用$rootScopeweb

舉個例子:app

在一個control A範圍內設置spa

    mainApp.controller('menuController', function($scope,$rootScope) {
        $rootScope.menus={}
        $rootScope.menus.showWelcome = false;
        $rootScope.menus.showExit = false;
        $rootScope.menus.activeHome = "active";
        $rootScope.menus.activeMystudy = "";
    });orm

 

在另外一個control B中ci

mainApp.controller('homeController', function($scope) {
        $scope.menus.activeHome = "active";
        $scope.menus.activeMystudy = "";
        $scope.loginForm = {userid:"李五"};
        $scope.login = function(){
            $scope.menus.loginId = $scope.loginForm.userid;
            $scope.menus.showWelcome = true;
            $scope.menus.showExit = true;
        }
    });it

這時操做B中的元素時,A中的元素會受影響。 注意,若是B中的數據名與$rootScope中的同名時,則在B中引用時須要使用$rootScope。io

其關鍵的因素是,全部的應用都有一個 $rootScope,它能夠做用在 ng-app 指令包含的全部 HTML 元素中。function

$rootScope 可做用於整個應用中。是各個 controller 中 scope 的橋樑。用 rootscope 定義的值,能夠在各個 controller 中使用。form

相關文章
相關標籤/搜索