7

ich möchte js code in angularjs controller feuern.fire angularjs event wenn tab/browser geschlossen ist

Ich habe dies:

$scope.$on('$destroy', function() { 
      alert('page1'); 
     }); 

Dies funktioniert gut, wenn ich die Navigation von der Seite entfernt, die diesen Controller nutzt aber seine Arbeit nicht, wenn ich tab/Browser bin zu schließen.

Muss ich einen anderen Code verwenden, um den Js-Code auszulösen, wenn der Tab/Browser geschlossen wird?

Vielen Dank im Voraus, Laziale

Antwort

6

Aus den Winkel docs:

$ destroy();

Entfernt den aktuellen Bereich (und alle untergeordneten Bereiche) von dem übergeordneten Bereich. Entfernen bedeutet, dass Aufrufe von $ digest() nicht länger an den aktuellen Bereich und seine untergeordneten Elemente weitergegeben werden. Das Entfernen auch impliziert, dass der aktuelle Bereich für Garbage Collection geeignet ist.

Die $ destroy() wird normalerweise von Direktiven wie ngRepeat für verwendet, die das Abwickeln der Schleife verwalten.

Kurz bevor ein Oszilloskop zerstört wird, wird ein $ destroy-Ereignis auf dieses Bereichs gesendet. Anwendungscode kann einen $ destroy-Ereignishandlers registrieren, der ihm die Möglichkeit gibt, die erforderliche Bereinigung durchzuführen. Beachten Sie, dass in AngularJS auch ein Ereignis $ destroy jQuery vorhanden ist, mit dem zum Bereinigen von DOM-Bindungen verwendet werden kann, bevor ein Element aus dem DOM-Element entfernt wird

Dies behandelt nur die Situation, in der das Oszilloskop selbst zerstört wird, das scheint jedoch nicht zu geschehen, wenn der Tab/Browser geschlossen ist.

Sie untere Ebene Methoden verwenden, um onUnload und Onbeforeunload Ereignisse mit dieser Situation zu umgehen, hier ist ein weiterer Beitrag, den Sie nützlich finden können:

javascript detect browser close tab/close browser

Verwandte Themen