2016-05-05 7 views
3

handhaben Ich würde gerne wissen, wie ich $ stateParams Variablen nach einem Neuladen der Seite beibehalten sollte.

.state('proSearch', { 
        url: '/proSearch/:city', 
        params: { 
         location: null 
        }, 
        templateUrl: 'imports/client/ui/proSearch/proSearch.html', 
        controller: 'proSearchController', 
        controllerAs: 'vm' 
       }) 

Wenn die Seite neu geladen wird, hat mein Controller $ stateParams.location Daten verloren. Wie kann ich es speichern?

Antwort

0

Sie können es in der Steuerung mit $ StateParams Service erreichen.

function MainController($scope, $stateParams, $state) { 
 

 
    
 
    var city = $stateParams.location 
 
    
 
    state.go($state.current, {location: city}, {reload: true}); 
 

 
}

Dieser Code ist in der Stadt Variable Ihren Standort params halten und die zweite Zeile ist die Seite mit aktuellen Stadt Parameter aktualisieren. Ich hoffe, es hilft

+0

Ich spreche über Standortparameter, die Koordinateninformationen enthält. Es passiert keine URL und geht verloren, nachdem die Seite neu geladen wurde. – Youssef

+0

Eigentlich konnte ich nicht genau bekommen, was Sie wollen, aber ich aktualisiere mein Code-Snippet für die Aktualisierung der aktuellen Seite mit aktuellen Parametern @Youssef – oguzhan00

0

Sie können die $ stateParams-Daten für eine $ Scope-Variable anstelle einer lokalen Variablen speichern. Eine $ scope-Variable bleibt in Ihrem Bereich bestehen.

Sie können auf $ scope-Variablen auf anderen Controllern zugreifen, solange Sie $ scope referenzieren.

Ich denke, dass Sie die Seite nicht neu laden müssen. Zwei-Wege-Datenbindung ist ein cooles Konzept, das ermutigt, eine Seite nicht neu laden zu müssen, um die Datenaktualisierung zu sehen.

+0

das Problem ist, wenn der Benutzer die Seite aktualisieren wird der Bereich auch gereinigt. Mein Problem: Ein Benutzer hat eine Recherche durchgeführt und seine Seite falsch aktualisiert. Ich möchte weiterhin korrekte Daten anzeigen. Die Ortsvariable wird jedoch nicht von der URL übergeben. – Youssef

Verwandte Themen