【发布时间】:2020-10-30 05:55:40
【问题描述】:
我正在为 Angular 提供的 Router.events 可观察对象而苦苦挣扎。我的应用程序有两个延迟加载的模块。 每个都有一个导航菜单,显示一些链接以在应用程序内导航。我希望我的一个链接根据当前路线显示为选中状态。
问题是,当我使用基于 router.events obserable 的 observable 的异步管道时,路由事件在我的模板由 angular 处理之前已经发出。
我知道如果我在组件的构造函数中手动订阅,我可以获得数据。如果我在 ngOnInit 函数中执行相同的操作,与异步管道相同,则不会发出任何数据。 如果我在页面加载后使用链接导航,它工作正常。
您知道如何实现这一目标吗?
谢谢!
【问题讨论】:
-
您需要监听事件变化,还是只需要能够获取当前值?即使用 ActivatedRoute 将获得当前值,而无需订阅所有路由器事件
-
嗨,我需要监听事件变化,因为我的显示链接的组件只构建了一次。谢谢
-
请提供您对 ngoninit 和订阅的代码,以便社区可以评论,如果适用
-
我有人需要它,这就是我修复它的方法。如果您有延迟加载的模块,请确保在根组件上导入此服务,以便订阅发生在最开始。
标签: angular lazy-loading