Для веб-приложения AngularJS веб-страницы не запоминают свои последние позиции прокрутки при навигации к ним с помощью кнопки "Назад". Зачем? Как исправить?
При навигации по руководству разработчика для AngularJS я заметил, что я не возвращаюсь в свою последнюю позицию прокрутки при переходе на страницу с помощью кнопки "Назад". Вместо этого я возвращаюсь к вершине. Поскольку руководство разработчика построено с помощью AngularJS, я боюсь, что, когда я создам собственное веб-приложение с помощью AngularJS, оно будет раздражать моих пользователей, если у них будет такой же опыт. Почему это происходит, и как это можно исправить? Мне нужно каким-то образом использовать API истории HTML5?
Перейдите в руководство разработчика и посмотрите это поведение самостоятельно: http://docs.angularjs.org/guide/directive
Ответы
Ответ 1
Если вы хотите исправить это, я могу подумать о том, чтобы отслеживать каждую позицию прокрутки маршрута на карте (в сервисе или на rootScope) - когда вы покидаете страницу ($routeChangeStart
прослушиватель) только сохраните положение прокрутки вместе с маршрутом маршрута.
И при переходе на любую страницу вы можете проверить, существует ли запись на карте маршрута и прокрутить окно в нужную позицию на $routeChangeSuccess
event
Ответ 2
Вы должны заглянуть в службу Angular $anchorScroll.
http://docs.angularjs.org/api/ng. $anchorScroll
Это именно ваш сценарий!
Пример кода в значительной степени говорит сам за себя.