Javascript $rootScope.$on内的angular access服务实例
我需要以下代码来访问$rootscope中的服务实例变量Javascript $rootScope.$on内的angular access服务实例,javascript,html,angularjs,Javascript,Html,Angularjs,我需要以下代码来访问$rootscope中的服务实例变量 myapp.service('myservice',function($rootScope) { this.var = false; $rootScope.$on('channel',function(e,msg) { var = true; }); }); 如何访问$rootscope.$on.中的myservice.var?您试图解决的这个问题有点不好的方法。在您的情况下,您的服务中已经有$rootSco
myapp.service('myservice',function($rootScope)
{
this.var = false;
$rootScope.$on('channel',function(e,msg)
{
var = true;
});
});
如何访问$rootscope.$on.中的myservice.var?您试图解决的这个问题有点不好的方法。在您的情况下,您的服务中已经有$rootScope,因此您可以编写如下内容:
$rootScope.var = false;
这将是与您当前尝试的$rootScope滥用完全相同的级别。但服务是为了避免以这种方式使用$rootScope而设计的。快速而肮脏地做这件事的最好方法是这样做
但更好的方法是对$rootScope上未发出事件的服务调用方法。省去关于使用$rootScope的坏\最佳实践争论,您可以如下访问变量:
myapp.service('myservice',function($rootScope) {
var me = this;
this.myVar = false;
$rootScope.$on('channel',function(e,msg) {
me.myVar = true;
});
});
好的,我来解释一下情况。我有一个websocket服务,它可以随时从后端接收消息。当消息接收到websocket服务时,它会广播这些消息。由于视图更改时控制器被破坏,因此无法侦听来自控制器的消息,因此某些消息可能会丢失。那么我有什么选择呢?。这样比较好,这就是我想要的答案。我很感激谢尔盖的建议。