angular 2 router.events订阅未触发
发布时间:2020-12-17 17:47:01 所属栏目:安全 来源:网络整理
导读:我正在使用一个breadcrumbs组件来订阅router.events. 问题是第一次加载组件时,它不会触发订阅. ngOnInit(): void { console.log("oninit beradcumbs"); this.router.events.filter(event = event instanceof NavigationEnd).subscribe(event = { this.breadc
我正在使用一个breadcrumbs组件来订阅router.events.
问题是第一次加载组件时,它不会触发订阅. ngOnInit(): void { console.log("oninit beradcumbs"); this.router.events.filter(event => event instanceof NavigationEnd).subscribe(event => { this.breadcrumbs = []; let currentRoute = this.route.root,url = ''; do { const childrenRoutes = currentRoute.children; currentRoute = null; childrenRoutes.forEach(route => { if (route.outlet === 'primary') { const routeSnapshot = route.snapshot; url += '/' + routeSnapshot.url.map(segment => segment.path).join('/'); this.breadcrumbs.push({ label: route.snapshot.data,url: url }); currentRoute = route; } }); } while (currentRoute); console.log("Breadcumbs",this.breadcrumbs); }); } 单击具有routerLink属性的链接时,订阅将发出值,并且工作正常. 工作人员:Working router 如果您需要更多信息来帮我:) 解决方法
您的代码通过subscribe异步加载数据.我建议将它放在constructor()中,因此它将在生命周期钩子之前执行,因此在OnInit()之前执行,并且在您单击链接之前将加载数据.哪个是对的. 因此,更密切地关注Observables,以便更好地了解正在发生的事情.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |