В текущей версии Router API (v14.0.0-) UrlTree может быть создан только из ActivatedRoute, который должен быть активен и материально отображаться в UrlTree (это означает, что это не может быть пустой путь с именемoutlet).

Из-за реализации текущего процесса создания UrlTree UrlSegment из ActivatedRoute просматривается в текущем активном UrlTree маршрутизатора. Если это не сработает, создание UrlTree завершится ошибкой.

В качестве примера предположим, что у нас есть сторож, который на основе некоторого условия перенаправляется на одноуровневый маршрут:

Поскольку родственный маршрут еще не активирован, это не сработает. Чтобы решить эту проблему, маршрутизатор предоставляет новую функцию, которая позволяет создавать UrlTree из любого ActivatedRouteSnapshot:

Функция CreateUrlTreeFromSnapshot принимает ActivatedRouteSnapshot, commands и необязательные queryParams и fragments и возвращает UrlTree.



Подпишитесь на меня в Medium или Twitter, чтобы узнать больше об Angular и JS!