angulajs 如何在controller 之间共享数据

Posted 51kata

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angulajs 如何在controller 之间共享数据相关的知识,希望对你有一定的参考价值。

当在一个controller中 通过设置$scope的数据,来影响其它control的范围时,可以使用$rootScope

举个例子:

在一个control A范围内设置

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

 

在另一个control B中

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;
        }
    });

这时操作B中的元素时,A中的元素会受影响。 注意,如果B中的数据名与$rootScope中的同名时,则在B中引用时需要使用$rootScope。

其关键的因素是,所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 html 元素中。

$rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。用 rootscope 定义的值,可以在各个 controller 中使用。

 
















以上是关于angulajs 如何在controller 之间共享数据的主要内容,如果未能解决你的问题,请参考以下文章

AngulaJS实战总结

AngulaJS路由 ui-router 传参

angulajs知识点一

springmvc学习笔记-springmvc整合mybatis之controller

@Controller与@RestController的不同之处?

如何在angularjs中合并两个对象数组?