首页 > 解决方案 > 初始化前的Angular 2路由器`NavigationEnd`事件

问题描述

我想根据当前路线以不同的方式显示我的角度分量之一。为此,我NavigationEnd在组件中设置了订阅。然而,这个组件似乎只是在导航结束后才被初始化,所以它永远不会被调用。代码如下:

constructor(private store: Store<fromApp.AppState>, private router: Router) {
}
subscribeToNavigation() {
  console.log('Setting up navigation subscription');
  const navEnd = this.router.events.pipe(
    filter(evt => evt instanceof NavigationEnd)
  ) as Observable<NavigationEnd>;
  this.navEndSubscription = navEnd.subscribe(evt => {
    console.log('Finished navigating to: ' + evt.url);
  });
  console.log('done');
}

我在听NavigationEnd事件时会以错误的方式解决这个问题吗?

标签: angularngrx

解决方案


正如评论中所述,任何初始状态更改都可以使用 来完成this.router.url,并且可以使用订阅查看进一步的 url 更改。


推荐阅读