注入后,angularjs定制属性中的$ rootScope消失了

时间:2016-04-29 05:46:49

标签: angularjs ionic-framework

Problem Related codepen

我在主控制器中声明了$rootScope.myproperty,可以在其他控制器中访问它。

但在其中一个控制器中,我必须使用$rootScope注入$watch。然后,当我回来$rootScope.myproperty时,它变得不确定。奇怪为什么会发生这种情况?

2 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为您使用$rootScope作为变量并为其指定了一个对象

$rootScope = { myproperty: 'root abc' };

这是错误的。相反,你应该如下所示添加属性,它将起作用:

$rootScope.myproperty = 'root abc';

我已更新了codepen及其工作:http://codepen.io/anon/pen/RaeyJm

答案 1 :(得分:0)

Working Demo

问题是您已将$rootScope注入AttendeesCtrl控制器。您无需将$rootScope注入控制器。当您注入$scope时,由于prototypal inheritance of JavaScript,您可以自动访问$rootScope中定义的任何内容。所以AttendeesCtrl控制器应如下所示:

.controller('AttendeesCtrl', function($scope) {

  //I used $watch and $rootScope somehere so I have to inject $rootScope in this controller
  $scope.myproperty = $rootScope.myproperty;
});

有关详细信息,您可以查看AngularJS Scope Hierarchies

希望能解决你的问题。