Как заставить Angular 2 запомнить положение прокрутки?

Я нахожусь на странице 1, я прокручиваю страницу наполовину, а затем нажимаю ссылку, которая приводит меня на страницу 2 через маршрутизатор Angular. Когда я нажимаю кнопку «Назад», я хочу, чтобы страница 1 прокручивалась наполовину вниз, как это было до того, как я покинул эту страницу.

Как это сделать проще всего?


person alcfeoh    schedule 24.02.2017    source источник
comment
Возможно, вы могли бы создать сервис, в котором вы будете писать последнюю позицию прокрутки и «pageId» в компоненте ngDestroy, а в следующий раз в ngInit проверять, есть ли позиции прокрутки.   -  person Igor Janković    schedule 24.02.2017
comment
Звучит как разумное решение. Мне было интересно, есть ли у Angular готовый способ сделать это через какую-то конфигурацию маршрутизатора, поскольку это поведение браузера по умолчанию, которое мы теряем при использовании маршрутизатора.   -  person alcfeoh    schedule 24.02.2017


Ответы (1)


Сохраните в localStorage позицию прокрутки в ngOnDestroy() и восстановите ее в ngOnInit()

person Ivan    schedule 24.02.2017
comment
Кто-нибудь может объяснить, почему за это проголосовали? Это потому, что ответ настолько лаконичен, что почти бесполезен, или потому, что это плохой способ решить проблему? Я пытаюсь решить аналогичную проблему, и мне очень жаль, что минусовщики не оставили комментарий... - person pbarranis; 15.11.2018
comment
я сделал что-то подобное. Просто вместо сохранения в localStorage я написал собственный сервис. - person marcel; 05.12.2018