У меня есть компонент приложения с двумя выходами:
template: '<router-outlet></router-outlet><router-outlet name="popup"></router-outlet>'
Я следовал примеру в этой ссылке, чтобы создайте маршрутизацию и routerLinks, и все будет работать нормально, пока routerLinks находится внутри компонента приложения. Однако я создал основной компонент макета с меню внутри, чтобы я мог повторно использовать его на всех страницах и использовать loadChildren для загрузки соответствующих модулей и компонентов внутри.
<app-main-menu></app-main-menu>
<h1>
{{title}}
</h1>
<div class="container">
<router-outlet></router-outlet>
</div>
Проблема в том, что когда я перемещаю routerLinks для всплывающего окна в меню, оно содержит завершающую косую черту для основного маршрута, и результирующий URL-адрес не работает. Так, например, этот routerLink:
<a [routerLink]="[{ outlets: { popup : ['login'] } }]">Login</a>
создает URL-адрес 'localhost/mainroute(popup:login)', если он размещен в компоненте приложения, и 'localhost/mainroute/(popup:login)', если он размещен в компоненте меню.
В то время как первый URL-адрес работает, второй URL-адрес выдает ошибку: Ошибка: Не удается сопоставить ни один маршрут: 'mainroute'
Я не понимаю, почему он рассматривает два случая по-разному. Я также не понимаю, что даже если URL-адрес 'localhost/mainroute/' работает, второй сгенерированный URL-адрес не работает из-за косой черты в конце.
Кто-нибудь может мне помочь?