角度6:即使导航到同一路由,如何获取路由器事件



即使导航到同一路由,如何获取路由器事件,例如我有三个路由

  • 路线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 { }

最新更新