Ich möchte die Fensterereignisse in meinem AngularJS-Dienst anhören, damit ich sie an meine Controller senden kann.
Ich habe eine Chrome-Erweiterung, die jede Nachricht mit port.postMessage('Any Message');
versendet.
Ich möchte, dass mein angularjs-Dienst diese Nachricht hört und sie mit $rootScope.$broadcast("Something occurred.");
In meinem Dienst versuche ich dies mit dem folgenden Listener.
%Vor% Ich habe auch $window
ausprobiert, aber ich weiß nicht, warum der obige Code nicht funktioniert. Auch meine IDE, jetbrains webstorms klassifizieren obigen Codeausschnitt als nicht erreichbar.
Vorher habe ich den obigen Code in einem Controller verwendet und es hat gut funktioniert. Ich habe nicht im Controller gesendet. Nun möchte ich das zum Dienst verschieben, damit alle Controller es vom Dienst hören können.
Haben Sie diesen Dienst irgendwo injiziert? Dienste werden nur ausgeführt, wenn Sie sie wirklich injizieren.
Außerdem ist es besser, $ window anstelle von window zu verwenden, damit Sie es später in Ihren Tests sehen können.
Problem :
%Vor%Beispiel :
Stellen Sie sich vor, wir haben einen Listener-Code in Seite B geschrieben. Meine Startseite ist Seite A .
Ich habe eine Warnung im Listener-Code in Seite B hinzugefügt.
%Vor%Lasst uns gehen,
Tags und Links javascript angularjs