2013-06-14 4 views
11

Podczas nawigowania po podręczniku programisty AngularJS zauważyłem, że nie wracam do mojej ostatniej pozycji przewijania podczas powrotu do strony za pomocą przycisku Wstecz. Zamiast tego wracam na samą górę. Ponieważ przewodnik programisty jest zbudowany z AngularJS, obawiam się, że kiedy zbuduję własną aplikację internetową z AngularJS, będzie denerwować moich użytkowników, jeśli mają to samo doświadczenie. Dlaczego tak się dzieje i jak można to naprawić? Czy muszę w jakiś sposób używać interfejsu HTML5 historii?Dla aplikacji internetowej AngularJS: strony internetowe nie zapamiętują swoich ostatnich pozycji przewijania podczas powrotu do nich za pomocą przycisku Wstecz. Czemu? Jak naprawić?

Przejdź do przewodnika dewelopera i zobaczyć to zachowanie się: http://docs.angularjs.org/guide/directive

+2

Zwykle większość przeglądarek nie czeka na xhrs, aby wykonać "przewijanie", więc po naciśnięciu przycisku Wstecz strona jest "przewijana", zanim zawartość zostanie "załadowana". Jednak nie zbadałem jeszcze żadnych rozwiązań. – DerekR

Odpowiedz

8

Jeśli chcesz to naprawić, mogę myśleć o idei utrzymywania toru każdej trasie pozycji przewijania w mapie (w służbie lub na a rootScope) - po opuszczeniu strony ($routeChangeStart) po prostu zapisz pozycję przewijania wraz ze ścieżką trasy.

A kiedy zbliża się do każdej strony, można sprawdzić, czy istnieje zapis w mapie na ścieżce trasy i okno do żądanej pozycji przewijania na $routeChangeSuccess imprezy

Powiązane problemy