AngularJs: ng - wenn zu spät reagiert

8

Ich benutze ui.router und füge meine Navigation so in meine html-Hauptdatei ein:

%Vor%

Der logedin() boolean wird in dieser Funktion über angular.module().run() gesetzt:

%Vor%

Wenn ich in einer Navigation auf Logout klicke, löst der Controller der Navigation diese Funktion aus:

%Vor%

Die Probleme sind nach dem $state.go der Navigation versteckt sich nicht, aber nach dem Aktualisieren der Seite.

Muss ich die Hauptindexvorlage / -ansicht erneut (und wie)? Oder wie könnte ich dieses Problem lösen?

    
orgertot 04.12.2015, 12:56
quelle

2 Antworten

4

Also habe ich es selbst gelöst. Entschuldigung, dass ich die Methode logedin () nicht zur Verfügung stelle.

Das Problem war:

%Vor%

Der $rootScope.logedin wurde in der angular.module().run() -Funktion gesetzt.

Um es zu lösen, musste ich einen einfachen Getter / Setter-Dienst erstellen.

%Vor%     
orgertot 07.12.2015, 10:34
quelle
1

Gut zu wissen, dass das Problem gelöst wurde. Was passieren könnte, ist, dass Ihre Werte nicht weitergegeben werden ... Ich könnte dies zur Fehlerbehebung machen:

%Vor%

1) Weisen Sie loginin () einem Scope-Modell oder einer Service-Eigenschaft (vorzugsweise) loginnedBool zu und prüfen Sie, ob die Werte nach dem Logout weitergegeben werden, wodurch sich der loggedinBool-Wert ändert.

2) Wenn das nicht funktioniert, probiere $ broadcast / $ in loggout aus und fange das auf, um den Wert von login inBool zu ändern. Dies sollte automatisch eine Zwei-Wege-Bindung bereitstellen, andernfalls probiere $ scope.digest () oder $ scope.apply () -Methode, um zu sehen, ob Werte propagiert werden.

    
Gary 08.12.2015 05:28
quelle