即使导航到同一路由,如何获取路由器事件,例如我有三个路由
- 路线1
- 路线2
- 路线3
如何从路由器捕获事件,同时从路由 1(同一路由(导航到路由 1。
首先告诉重新加载路由(即重播可观察的(:
this.router.onSameUrlNavigation = 'reload';
然后,订阅路由事件(并选择性地检查事件是否是循环的最后一个,否则你会做很多事情(:
this.router.events
.pipe(filter(event => event instanceof NavigationEnd))
.subscribe(event => {...});
我明白了,无论如何谢谢,我使用了以下配置
@NgModule({
imports: [RouterModule.forRoot(appRoutes, {onSameUrlNavigation: 'reload'})],
exports: [RouterModule]
})
export class AppRoutingModule {
}
您可以使用以下任何方式解决此问题。
1(只需在构造函数中添加此行
this.router.onSameUrlNavigation = 'reload';
这适用于 RouterModule.forRoot((和 RouterModule.forChild(( 两者。
2( 以下代码行仅适用于 RouterModule.forRoot((,不适用于 RouterModule.forChild((。因为 RouterModule.forChild(( 只接受一个参数。
@NgModule({ imports: [RouterModule.forRoot(appRoutes,{onSameUrlNavigation: 'reload'}(], 导出: [路由器模块] }) 导出类 AppRoutingModule { }