É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
Vous devez vous connecter pour publier un commentaire.
Ici est l'exemple que j'ai fait - avec l'abonnement DOM événement et la diffusion de l'événement de service de contrôleur: http://plnkr.co/edit/nk2aPt?p=preview
OriginalL'auteur shershen
Quelque chose comme cela peut vous aider:
OriginalL'auteur Rian
Ne vous injectez ce service quelque part? Les Services ne fonctionnera que si vous avez vraiment leur injecte.
En outre, il est préférable d'utiliser $fenêtre au lieu de la fenêtre, de sorte que vous serez en mesure de s'en moquer plus tard dans vos tests.
Ne sais pas. Je recommande aussi de vérifier si vous devez manuellement à l'appel de $digest/$s'appliquent, comme il est peut-être déclenché à l'extérieur du AngularJS. De toute façon, si ça ne fonctionne pas - le téléchargement d'un plunker/jsfiddle qui reproduit cela, il sera plus facile de vous aider de cette façon.
OriginalL'auteur AdirAmsalem
Problème:
Exemple:
Considérer , nous avons écrit un code d'écouteur dans Page B. Ma page de démarrage est Page Un.
J'ai ajouté une alerte dans le code d'écouteur dans Page B.
Laisse Aller,
compter 2) Page B >> A >> de la Page B (alerte compter 3)
OriginalL'auteur vishnu das