I want to listen to the window events in my AngularJS service so that I can broadcast them to my controllers.
I have a Chrome extension which sends any message using port.postMessage('Any Message');
.
I want my angularjs service to listen to that message and send it to the controller using $rootScope.$broadcast("Something occurred.");
Inside my service, I am trying to do so with the following listener.
window.addEventListener('Any Message', function (event) {
if (event.origin != window.location.origin) {
return;
}
$rootScope.$broadcast("Something occurred.");
});
I also tried $window
but I don't know why the above code does not work. Also my IDE, jetbrains webstorms classify above code snippet as unreachable.
Before this, I used the above code in a controller and it worked fine. I wasn't doing broadcast in controller. Now I want to move this to the service so that all controllers should be able to listen to it from service.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…