2015-04-14 28 views
6

Mam następującą konfigurację dla stanu routera w mojej aplikacji angularjs.Załaduj ponownie stronę w przeglądarce wstecz/w przód przycisku w AngularJS z ui routerem

$locationProvider.html5Mode(true); 
    $stateProvider 
     .state('index', { 
      url: '/index?zoom&center', 
      views: { 
       'map': { 
        controller: 'MapCtrl', 
        templateUrl: 'map.html' 
       } 
      }, 
      reloadOnSearch:false 
    }); 

jednak naprzód przycisk wstecz w przeglądarce przejść do innego adresu URL, ale muszę odświeżyć stronę z adresów URL stateParams.

Na przykład: Użytkownik1 przejdź do strony http://www.example.com/index?zoom=2&center=1,2. następnie robi operację pęczek na stronie URL staje http://www.example.com/index?zoom=12&center=3,4

Potem naciska przycisk Wstecz powoduje zmianę adresu URL do poprzedniej, ale trzeba przeładować stronę, by pozwolić sterownik odczytać parametry zapytania do zrobienia właściwa rzecz ...

Jakikolwiek sposób, aby działało z przeglądarką wstecz/w przód?

+0

"ale strona nie odświeża się" - jeśli masz na myśli, że strona nie jest odświeżana w pełnym zakresie niż brak punktu kątowego, który ma mieć przyciski wstecz/przewijania do przodu bez pełnego odświeżania strony, co sprawia, że ​​rzeczy są szybsze, –

+0

ale muszę przeładować moją stronę na podstawie adresów URL. – kdu

Odpowiedz

1

Czy próbowałeś ustawić wartość true dla reloadOnSearch? Jeśli to nie zaspokoi twoich potrzeb, być może sprawdź to pytanie: Force AngularJS to reload a route although option reloadOnSearch is set to false

Prostszą alternatywą może być po prostu wymuszenie przeładowania za pomocą window.location = newUrl w razie potrzeby.

+1

na pewno chcę używać stanów routera ui. ale nadal chcesz używać historii przeglądarki, ponieważ użytkownik może kliknąć je w przeglądarce. – kdu

+0

Nie możesz mieć dwóch, o ile mi wiadomo, ponieważ stan jest kasowany po ponownym załadowaniu strony. Będziesz musiał zapisać stan w url lub cookie, aby zachować go poprzez przeładowanie strony. Istnieją składniki innych firm, które mogą w tym pomóc. – AlexMA

+0

@ user23878 Zaktualizowałem moją odpowiedź; Myślę, że źle zinterpretowałem twoje pytanie. – AlexMA