即使导航到同一条路线也如何获得路由器事件,例如我有3条路线
在从相同路由的路由1导航到route1时,如何捕获来自Router的事件。
答案 0 :(得分:3)
从告诉重新加载路由开始(即重播可观察的内容):
this.router.onSameUrlNavigation = 'reload';
然后,订阅路由事件(并可选地检查事件是否是周期的最后一个,否则,您会做很多事情):
this.router.events
.pipe(filter(event => event instanceof NavigationEnd))
.subscribe(event => {...});
答案 1 :(得分:0)
我明白了,还是谢谢,我使用了以下配置
@NgModule({
imports: [RouterModule.forRoot(appRoutes, {onSameUrlNavigation: 'reload'})],
exports: [RouterModule]
})
export class AppRoutingModule {
}
答案 2 :(得分:0)
您可以使用以下任何方式解决此问题。
1)只需在构造函数中添加以下行
this.router.onSameUrlNavigation = 'reload';
这与RouterModule.forRoot()和RouterModule.forChild()都可以使用。
2)下面的代码行仅适用于RouterModule.forRoot(),不适用于RouterModule.forChild()。因为RouterModule.forChild()仅接受一个参数。
@NgModule({ imports: [RouterModule.forRoot(appRoutes,{onSameUrlNavigation: 'reload'})], exports: [RouterModule] }) export class AppRoutingModule { }