Ich bin neu in AngularJS und möchte routenabhängige Seitenübergänge implementieren. Zum Beispiel möchte ich, dass die Seite je nach Route nach links, nach rechts oder nach unten blendet.
Mein 'Plunker' erreicht dies, indem Sie dem $ routeChangeSuccess-Event zuhören und dann eine Übergangsstil-spezifische CSS-Klasse auf die ein- und ausgehende Ansicht anwenden (inspiriert von Ссылка ):
Der Aufruf von $ scope. $ apply () im Ereignis-Listener führt jedoch dazu, dass AngularJS die Fehlermeldung "$ digest in progress" ausgibt. Aber wenn ich nicht $ scope. $ Apply () aufrufe, wird die CSS-Klasse der leaving-Ansicht nicht aktualisiert und die Animation funktioniert nicht richtig.
Was ist hier los?
Ich habe in deinen Plünderer geschaut. Das Problem besteht darin, wie Sie Klassen verwenden, um Ihre Ansichten zu animieren.
Wenn das $routeChangeSuccess
-Ereignis ausgelöst wird, hat ngView
bereits die Klasse entfernt, bevor Sie die Möglichkeit haben, die Richtung zu ändern. Sie überschreiben es, indem Sie die neue Klasse so schnell anwenden, dass sie nicht bemerkt wird, aber dann erhalten Sie den Fehler Digest in Progress.
animate
: ngView
like so hinzu: Tags und Links angularjs