In meinem eckigen Projekt wird beim Ändern des Pfads mit $location.path('/foobar')
die Zielansicht angezeigt, aber die Daten werden nicht neu geladen (normalerweise wird nach dem Speichern eines Elements und dem Zurückkehren zur Liste die Liste nicht aktualisiert).
Ich habe versucht, $route.reload()
oder $scope.apply()
hinzuzufügen, aber nichts ändert sich.
Ich weiß nicht, was falsch ist oder fehlt, damit das funktioniert.
AKTUALISIEREN
$location.url()
funktioniert nicht UPDATE 2 - ANTWORT
Ok, nach vielen Kommentaren und Antworten denke ich, es ist Zeit, das zu beenden.
Ich hätte nicht gedacht, dass es eine so komplizierte Frage gewesen wäre.
Also, meine Schlussfolgerung, alles zu geben, was du gesagt hast ist:
Ihr habt mir alle gute Ratschläge gegeben, also danke.
Pseudocode: -
%Vor%Ihr Service sollte aussehen,
%Vor%Hoffe das hilft !!
Verwenden Sie $window.location.href.
, um die Seite neu zu laden. Ich überprüfe einfach $ location document :
Seite neu laden Navigation
Mit dem $ location-Service können Sie nur die URL ändern. Sie können die Seite nicht erneut laden. Wenn Sie die URL ändern und die Seite neu laden oder zu einer anderen Seite navigieren müssen, verwenden Sie eine niedrigere API, $ window.location.href.
Beispiel:
%Vor%Sie können Ссылка umschalten und haben die Methode $ state.reload (), die den gesamten Controller neu initialisieren kann.
Wenn Sie nicht wechseln möchten, ist das Problem, dass der Controller noch lebt, aber Sie können nach dem Speichern implementieren
%Vor%dann wrap Methode des Ladens von Daten in den Controller zu funktionieren und dann können Sie neue Daten in bestehende Liste schieben / oder Ajax neu laden
%Vor%Ссылка $ rootScope.Scope # $ auf
Ich hatte das gleiche Problem gerade gestern, wenn Sie versuchen, zu demselben Pfad zu navigieren, in dem Sie bereits sind, wird Winkel nicht versuchen, die Ansicht und den Kontroller neu zu laden. Was es für mich behoben hat, ist das Anhängen eines "/" am Ende jeder Route in $ routeProvider, zum Beispiel:
%Vor%Bearbeiten
Hier ist ein Arbeitsplunker mit Winkel 1.2.26
Try $scope.dataModel.$save(); $location.url('/foobar');
Ein anderer Grund könnte das Problem lösen: Wenn Sie nach / foobar umleiten, sollte der Controller von foobar einen AJAX-Aufruf an Ihren Server haben, um die neuen Daten zu laden. Und Sie sollten eckige Fabrik verwenden, um Ihre AJAX-Anrufe zu machen.
Wenn es immer noch nicht funktioniert, können Sie mehr Informationen über die Version des Angulars geben, die Sie verwenden, sowie Ihr Backend-Framework und Ihre Datenbank.
Tags und Links javascript angularjs