Winklige Endlosschleife für $ state oder $ location change

8

Ich bin am Ende meines Verstandes, Nerven, alles, für die letzten 4 Stunden versuche ich zu debuggen und zu lesen im ganzen Internet, was das Problem damit sein könnte.

Also arbeite ich an einer mobilen Anwendung und meine Logik ist wie folgt:

  1. Wenn der Benutzer in der Vergangenheit eingeloggt ist, haben wir Daten in localStorage darüber, dann zeigen Sie ihm den Eintrag. Dies ist offline
  2. Wenn wir mit dem Internet verbunden sind, zeigen Sie zuerst den Eintrag an und überprüfen Sie im Hintergrund, ob er noch eingeloggt ist
  3. Wenn ER NICHT ist, umleiten Sie die Anmeldeseite.

In der Hauptansicht nach Hause werte ich die obigen Aussagen aus, zuerst zeige ich ihm die Liste, wenn er localStorage-Daten hat, dann überprüfe ich online und leite umleiten, falls nötig.

Immer wenn ich zwei $ state- oder $ locations habe, schleift . Wie der Browser fast einfriert, Glück ist es Chrome. und ich bekomme Cannot call method 'insertBefore' of null . Von dem, was ich lese, ein bekanntes angular.ui Router-Problem, wenn schlecht oder ein anderes mystisches Problem verwendet.

Einige Code:

Diese Event-Emitter und -Empfänger, die ich bei der Rückgabe meiner StateManagement Services anrufe

%Vor%

. . .LOGIC

%Vor%

... gebe meinen Service zurück

%Vor%

Und das ist in meinem Controller:

%Vor%

Was mache ich falsch?

Ich habe die Emitter getestet, meine check () -Funktion, die alle Emitter erzeugt, ich habe mehrere Kombinationen auf ui.router ausprobiert und ich bin kläglich gescheitert:).

    
Arthur Kovacs 05.04.2014, 22:45
quelle

1 Antwort

2

Ich hatte das gleiche Problem mit dem gleichen Anwendungsfall, es ist ein Fehler mit ui Router, aber darauf warten, dass es die Zustandsänderung vor dem Übergang beendet, löste es:

if (webAPIAuth.isLoggedIn()) { $scope.$on('$stateChangeSuccess', function () { $state.go('dashboard'); }); }

    
Kenneth Lynne 07.04.2014 00:04
quelle