2017-05-03 1 views
0

Ich habe 2 verschiedene Controller. Ich gehe von 1 zum anderen über $state.go

Meine Frage ist, dass ich bemerkte, wenn ich zum Controller gehe, feuert es das JS nicht wieder ab, da der Staat bereits vorhanden ist. Mein Problem ist, dass ich eine Liste brauche, um zu aktualisieren.

1 Controller hat ein Element zur Liste hinzugefügt und dann zurück zur Liste navigiert.

Ich habe wirklich nichts gesehen, aber ich hatte auf eine Art von onRouteParams oder onRoute gehofft, die ausgelöst wird, wenn eine Statusänderung aufgerufen wird.

Was ist die beste Vorgehensweise?

Im Zielmodul hat der Controller eine refresh Funktion, die die Liste nur aktualisiert.

Antwort

1

Eine Option wäre, sich in das Ereignis stateChangeSuccess einzuklinken. Zum Beispiel:

$scope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) { 
    // run code to refresh list 
}); 

Wie Sie aus den params sehen können, das gibt Ihnen den Zugriff auf beide, wo der Benutzer herkommt und wo sie angekommen sind.

+0

mm. OK. Ich muss darüber nachdenken. Ich denke, dass meine eckigen Steuerelemente nicht $ scope verwenden. Ich benutze: var self = das; und dann self für alle Referenzen verwenden. Obwohl ich vielleicht etwas tun könnte wie: 'self. $ On (....' – Fallenreaper

Verwandte Themen