angularjs – 我如何使用$ rootScope在Angular存储变量?

如何使用$ rootScope将变量存储在控制器中,以便以后在另一个控制器中访问?例如:
angular.module('myApp').controller('myCtrl',function($scope) {
  var a = //something in the scope
  //put it in the root scope
});

angular.module('myApp').controller('myCtrl2',function($scope) {
  var b = //get var a from root scope somehow
  //use var b
});

我该怎么做?

在根范围设置的变量通过原型继承可用于控制器范围。

这里是@ Nitish的演示的修改版本,显示了关系更清晰:
http://jsfiddle.net/TmPk5/6/

注意,当模块初始化时,rootScope的变量被设置,然后每个继承的范围获得自己的可以独立设置的副本(变化函数)。此外,rootScope的值也可以更新(myCtrl2中的changeRs函数)

angular.module('myApp',[])
.run(function($rootScope) {
    $rootScope.test = new Date();
})
.controller('myCtrl',function($scope,$rootScope) {
  $scope.change = function() {
        $scope.test = new Date();
    };

    $scope.getOrig = function() {
        return $rootScope.test;
    };
})
.controller('myCtrl2',$rootScope) {
    $scope.change = function() {
        $scope.test = new Date();
    };

    $scope.changeRs = function() {
        $rootScope.test = new Date();
    };

    $scope.getOrig = function() {
        return $rootScope.test;
    };
});

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...