angular - 初始化前的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
事件时会以错误的方式解决这个问题吗?
解决方案
正如评论中所述,任何初始状态更改都可以使用 来完成this.router.url
,并且可以使用订阅查看进一步的 url 更改。
推荐阅读
- selenium-webdriver - Selenium Webdriver 脚本:在 Try 和 finally 会话中处理浏览器会话
- c# - 当其他目标变量发生更改时,如何在 NLog.config 文件中使变量保持不变(不更改其值)
- nginx - 我如何使用 nginx 来平衡 RabbitMQ?
- java - 如何更新具有 OneToMany 关联的对象的子行
- python - 如何查找字符串在文本文件中出现的次数?
- javascript - 2019年如何检测触摸设备?
- python - 我如何使用 lstm 预测下一个值?
- javascript - 是否可以在使用 cookie/浏览器本地存储从另一个网站发送请求时检查用户是否登录到我的网站?
- angular - 如何检测项目何时从 Primeng 自动完成中删除 | 角 6
- git - 当目录结构不同时,将提交从一个 git repo 复制到另一个