Что возвращает router.url в Angular?

Что возвращает router.url в Angular?

Представим ситуацию, в которой вам нужно проверить на какой странице вы находитесь, как бы вы это делали? Один из способов - это проверить текущий url страницы.

В Angular (я проверяю на 15 версии) это можно сделать с помощью router.url. Конечно, это не единственный способ, но сегодня мы будем рассматривать именно его. Давайте подумаем, что нам вернет такой вызов?

Предположим, у вас сложное приложение с множеством разделов и вдобавок ко всему это часть огромной экосистемы.

Интересная особенность заключается в том, что router.url вернет строку, содержащую текущий url (по аналогии с location.pathname) отталкиваясь от настроек baseHref вашего приложения.

Если у вас нет настройки baseHref, то вызов router.url вернет полный url после домена, например приложение открыто по адресу site.ru/book/part1, значит router.url вернет /book/part1. На главной странице получим /.

Но если у вас в angular.json стоит настройка baseHref: "/book", то при том же адресе получим следующие результаты: /part1 и / соответственно.

Учитывайте эту особенность при разработке. Всем интересных проектов!

12.02.23
Для просмотра сайта обновите браузер.