У меня есть код, который работал в контроллере. Я реорганизовал и переместил эту функциональность в службу. Код был слушатель событий:Почему услуга не принимает события
$rootScope.$on(.....)
Это был пойман, когда он был в контроллере, но не поймать событие, когда в службе. Я пробовал использовать $rootScope.$broadcast()
и $rootScope.$emit()
, чтобы сигнализировать о событии, но не попал в эту службу.
Там нет ничего особенного кода сервиса:
heartbeatService.$inject = [ '$rootScope', 'vcapChanService', 'eventService', 'logger' ];
function heartbeatService($rootScope, vcapChanService, eventService, logger) {
//....
}
Вопрос: как я могу получить сервис, чтобы поймать события на корневой сферы?
Редактировать с дополнительной информацией: Событие сигнализируется другой службой. И это событие попадает в другие контроллеры, но НЕ попадает в другую службу. Я пробовал все варианты обслуживания/фабрики, emit/broadcast и т. Д., И никто из них не работает. Сервис просто не поймал событие, но во всех других отношениях отлично работает.
дубликата http://stackoverflow.com/questions/16477123/how-do-i-use-on-in -a-service-in-angular –
В частности, этот ответ в связанном дубликате: http://stackoverflow.com/a/16485628/1078110 –
просто используйте '$ rootScope. $ on (eventName, func ....' Должен работать fine – charlietfl