Наверное, на каждом веб-сайте есть кнопка «Назад». Как должна работать эта кнопка? В основном, когда мы получаем новый URL-адрес, мы получаем новую страницу, этот URL-адрес сохраняется в истории браузера. Используя эту историю, мы можем двигаться вперед и назад. А как насчет спа-приложений, таких как angular? Большую часть времени в angular у нас есть статический маршрут, но мы меняем внутренний компонент на текущей странице.

Было бы хорошо, если бы на нашем сайте была кнопка «Назад». Что мы можем сделать? Стандартная история браузера у нас не работает. Мы можем написать наш собственный сервис, который будет слушать, когда пользователь меняет маршрут в нашем угловом приложении. Новый маршрут будет сохранен, когда пользователь нажимает кнопку «Назад», мы отдаем последний сохраненный элемент.

Наше угловое приложение имеет три маршрута. Каждый компонент просто показывает текущее местоположение.

В нашем навигационном сервисе, где мы храним историю маршрутов, мы подписываемся на события изменения маршрута. Каждый новый маршрут мы сохраняем в массиве. Очевидно, что эта служба содержит метод для получения предыдущего маршрута и возврата.

На панели навигации есть кнопки для изменения маршрута, кнопка возврата. Также мы показываем историю навигации.

В компоненте приложения мы инициализируем службу навигации, где подписываемся на изменение маршрута.

В результате у нас есть навигационный сервис, который сохраняет историю маршрутов в нашем угловом приложении.

Если вам нужно присмотреться к проекту вот ссылка.

Первоначально опубликовано на сайте http://tomorrowmean Never.wordpress.com 6 августа 2021 г.