我需要按照代码访问$ rootscope中的服务实例变量。
myapp.service('myservice',function($rootScope)
{
this.var = false;
$rootScope.$on('channel',function(e,msg)
{
var = true;
});
});
如何在$ rootscope中访问myservice.var。$ on?。
答案 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上调用不发出事件的服务方法。