$ rootScope。$ on内的角度访问服务实例

时间:2014-06-15 10:52:31

标签: javascript html5 angularjs

我需要按照代码访问$ rootscope中的服务实例变量。

myapp.service('myservice',function($rootScope)
{

  this.var = false;
  $rootScope.$on('channel',function(e,msg)
  {
     var = true;
  });
});

如何在$ rootscope中访问myservice.var。$ on?。

2 个答案:

答案 0 :(得分:2)

在讨论使用$ rootScope的不良/最佳实践辩论时,您可以像这样访问您的变量:

myapp.service('myservice',function($rootScope) {

  var me = this;
  this.myVar = false;

  $rootScope.$on('channel',function(e,msg) {
     me.myVar = true;
  });

});

答案 1 :(得分:1)

这个问题你试图解决它有点不好的方法的气味。在您的情况下,您的服务中已经有$ rootScope,因此您可以编写如下内容:

$rootScope.var = false;

这将与你当前的尝试完全相同的$ rootScope滥用级别。但服务是为了避免以这种方式使用$ rootScope。快速和肮脏的最佳方式是this

但更好的方法是在$ rootScope上调用不发出事件的服务方法。