我有一些在控制器中工作的代码。我重构了该功能并将其移至服务中。该代码有一个事件监听器:
$rootScope.$on( .....)
这在控制器中时被捕获,但在服务中时未捕获事件。我曾尝试使用$rootScope.$broadcast()
and$rootScope.$emit()
来发出事件信号,但都没有被服务捕获。
服务代码没有什么特别之处:
heartbeatService.$inject = [ '$rootScope', 'vcapChanService', 'eventService', 'logger' ];
function heartbeatService( $rootScope, vcapChanService, eventService, logger ) {
//....
}
问题:如何获得服务以捕获根范围内的事件?
编辑更多信息:该事件是从另一个服务发出的信号。这个事件在其他控制器中被捕获,但在另一个服务中没有被捕获。我已经尝试了服务/工厂、发射/广播等的所有变体,但它们都不起作用。该服务只是没有捕捉到事件,但在所有其他方面都完美无缺。