当我使用自己的组件之一时,我的路由器有些困惑。在大多数情况下,在我的应用中,如果我执行类似this.router.navigateByUrl ('/search');
的操作,则路由器会正确导航至<root url>/search
。
问题路线的设置如下:
{
path: 'search',
component: PlatSearchComponent,
children: [
{
path: 'view/:id',
component: PlatViewComponent
},
]
},
在PlatSearchComponent html中:
...
<router-outlet></router-outlet>
...
单击表中的一行,按如下所示打开PlatViewComponent:
this.router.navigateByUrl (`/search/view/${row.PlatID}`);
这样可以正确打开带有<url root>/search/view/16
之类网址的PlatViewComponent。
问题是,当我通过从PlatViewComponent调用this.router.navigateByUrl('/search')
离开该页面时,URL现在变为<url root>/search/view/search
。继续打开PlatViewComponent会导致URL最终看起来像<url root>/search/view/search/view/search/view/search/view
...
应用程序中的其他组件和路线均未出现此问题,它们之间的导航按预期工作。
我看不到任何可能导致此问题的路由器订阅事件或特定的路由配置项目。
答案 0 :(得分:0)
这最终成为我模块的APP_BASE_HREF问题。我使用./
作为值,将其更改为/
可以解决此问题。