Наверное, на каждом веб-сайте есть кнопка «Назад». Как должна работать эта кнопка? В основном, когда мы получаем новый URL-адрес, мы получаем новую страницу, этот URL-адрес сохраняется в истории браузера. Используя эту историю, мы можем двигаться вперед и назад. А как насчет спа-приложений, таких как angular? Большую часть времени в angular у нас есть статический маршрут, но мы меняем внутренний компонент на текущей странице.
Было бы хорошо, если бы на нашем сайте была кнопка «Назад». Что мы можем сделать? Стандартная история браузера у нас не работает. Мы можем написать наш собственный сервис, который будет слушать, когда пользователь меняет маршрут в нашем угловом приложении. Новый маршрут будет сохранен, когда пользователь нажимает кнопку «Назад», мы отдаем последний сохраненный элемент.
Наше угловое приложение имеет три маршрута. Каждый компонент просто показывает текущее местоположение.
В нашем навигационном сервисе, где мы храним историю маршрутов, мы подписываемся на события изменения маршрута. Каждый новый маршрут мы сохраняем в массиве. Очевидно, что эта служба содержит метод для получения предыдущего маршрута и возврата.
На панели навигации есть кнопки для изменения маршрута, кнопка возврата. Также мы показываем историю навигации.
В компоненте приложения мы инициализируем службу навигации, где подписываемся на изменение маршрута.
В результате у нас есть навигационный сервис, который сохраняет историю маршрутов в нашем угловом приложении.
Если вам нужно присмотреться к проекту вот ссылка.
Первоначально опубликовано на сайте http://tomorrowmean Never.wordpress.com 6 августа 2021 г.