AngularJS $ location.path () Daten der Zielansicht werden nicht neu geladen

8

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
  • Ich benutze eckige 1.2.26

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:

  • Wenn Sie ein einfaches Beispiel für @yvesmancera angeben, ist das Standardverhalten des Controllers, sich selbst neu zu laden
  • In einem komplexen Controller mit einer Ressourcenfactory und einigen REST-Aufrufen sollte jede Aktion zum Speichern oder Aktualisieren auch die Listenreferenz manuell aktualisieren oder ein vollständiges Neuladen der Liste auslösen

Ihr habt mir alle gute Ratschläge gegeben, also danke.

    
Sylver 25.06.2015, 17:25
quelle

6 Antworten

2

Pseudocode: -

%Vor%

Ihr Service sollte aussehen,

%Vor%

Hoffe das hilft !!

    
Sudhansu Choudhary 26.06.2015, 18:31
quelle
7

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%     
Huy Nguyen 10.08.2016 02:04
quelle
1

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

    
Milos Mosovsky 25.06.2015 23:58
quelle
1

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

Ссылка

    
yvesmancera 25.06.2015 20:04
quelle
0

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.

    
Shaohao Lin 25.06.2015 20:04
quelle
0
%Vor%

funktioniert für mich

    
quelle

Tags und Links