Nachdem sich der Benutzer abgemeldet hat, muss ich mein $ rootScope bereinigen. Ich habe $rootScope.$destroy()
ausprobiert, aber das hat nicht funktioniert. Gibt es eine Möglichkeit, alle Werte in $ rootScope durchzulaufen und sie zu löschen oder eine Methode, um sie einfach zurückzusetzen?
Sie möchten möglicherweise die Standardwerte beibehalten, die mit $rootScope
bei der Initialisierung geliefert werden. Da sie alle mit einem $
beginnen, können Sie alle Eigenschaften löschen, die nicht mit $
beginnen.
Sie können den Aufruf vereinfachen, indem Sie ihn als Funktion in $rootScope
hinzufügen.
Tatsächlich funktioniert die Methode
$destroy()
nicht mit $ rootScope (siehe hier ). Ich habe daran gearbeitet, indem ich$rootScope.$broadcast("$destroy")
anstelle von.$destroy()
aufgerufen habe, wenn eine ganze Angular-Instanz in unserer App entfernt wurde. Auf diese Weise werden alle Destruktoren gleich aufgerufen.Was das Element $ destroy event anbelangt, muss ich zugeben, dass ich es erst vor ein paar Tagen noch nicht einmal gewusst hatte ... Ich hatte es nirgends in den Dokumenten gesehen, außerdem benutze ich jQuery so hier würde es sowieso nicht funktionieren.
Referenz von hier
Das ist eine lange Beschreibung, aber Sie können die RootScope
manuell löschen, indem Sie die folgenden Möglichkeiten verwenden
Löschen Sie die rootScope-Variable
%Vor%Wenn Sie ganze $ rootscope-Objekte entfernen möchten,
%Vor%Tags und Links angularjs rootscope angularjs-rootscope