Ich benutze das neue deferIntercept () von ui-router, um die Browser-URL ohne Neuladen zu aktualisieren mein Controller:
%Vor%Mit diesem Code ändert ein Klick auf den Zurück-Button des Browsers die URL auf die vorherige, aber ich kann meinen Controller-Status nicht aktualisieren, um diese Änderung zu spiegeln. $ stateParams enthält weiterhin die Werte, die beim ersten Laden der Seite durch den Benutzer festgelegt wurden.
Was ist der beste Weg, um die Objekte $ state und $ stateParams in meinem Controller zu aktualisieren, wenn der Benutzer auf die Schaltfläche Zurück klickt oder die URL manuell ändert?
Danke!
Ihr Aufruf an $urlRouter.listen()
sollte außerhalb des Event-Handlers platziert werden. Das von Ihnen bereitgestellte Code-Snippet sollte folgendermaßen geändert werden:
Quelle: Die Die offizielle Dokumentation für $urlRouter
enthält ein Codebeispiel für die Methode deferIntercept
. Es setzt den Aufruf von $urlRouter.listen()
außerhalb der Listener-Funktion:
Tags und Links javascript angularjs angular-ui-router