Мой маршрутизатор как-то сбивается с толку, когда я использую один из своих компонентов. По большей части, в моем приложении, если я сделаю что-то вроде this.router.navigateByUrl ('/search');
, маршрутизатор правильно перейдет к <root url>/search
.
Проблемный маршрут настроен так:
{
path: 'search',
component: PlatSearchComponent,
children: [
{
path: 'view/:id',
component: PlatViewComponent
},
]
},
В html PlatSearchComponent:
...
<router-outlet></router-outlet>
...
Щелчок по строке в таблице открывает компонент PlatViewComponent следующим образом:
this.router.navigateByUrl (`/search/view/${row.PlatID}`);
Это правильно открывает компонент PlatViewComponent с URL-адресом, подобным <url root>/search/view/16
.
Проблема в том, что когда я ухожу с этой страницы, вызывая this.router.navigateByUrl('/search')
из PlatViewComponent, URL-адрес теперь становится <url root>/search/view/search
. Продолжая открывать PlatViewComponent, вы получаете URL, который в конечном итоге будет выглядеть как <url root>/search/view/search/view/search/view/search/view
...
Ни у одного из других компонентов и маршрутов в приложении нет этой проблемы, навигация между ними работает должным образом.
Я не вижу никаких событий подписки маршрутизатора или определенных элементов конфигурации маршрута, которые могли бы вызвать это.