Écouter de la fenêtre des événements dans un service Angularjs

Je veux écouter les événements de fenêtre dans mon AngularJS service afin que je puisse les diffuser auprès de mes contrôleurs.

J'ai une extension Chrome qui envoie les messages à l'aide de port.postMessage('Any Message');.

Je veux que mon angularjs service pour écouter le message et l'envoyer au contrôleur à l'aide $rootScope.$broadcast("Something occurred.");

À l'intérieur de mon service, je suis en train de le faire avec la suite de l'auditeur.

window.addEventListener('Any Message', function (event) {
    if (event.origin != window.location.origin) {
        return;
    }
    $rootScope.$broadcast("Something occurred.");
});

J'ai aussi essayé $window mais je ne sais pas pourquoi le code ci-dessus ne fonctionne pas. Aussi mon IDE, jetbrains webstorms classer ci-dessus extrait de code comme inaccessible.

Avant cela, j'ai utilisé le code ci-dessus dans un contrôleur, et il a bien fonctionné. Je ne faisais pas de diffusion dans le contrôleur. Maintenant, je veux déplacer le service, de sorte que tous les contrôleurs devraient être en mesure de l'écouter de service.

OriginalL'auteur Sojharo Mangi | 2015-02-07