我需要在我的角度应用程序中订阅url更改,我需要根据url操作标题文件。我已经尝试过ActivatedRoute.url,但它给出的网址是空的,并且当网址更改时也不会触发订阅。
答案 0 :(得分:1)
您可以通过将Router
注入组件中来实现。我通常在AppComponent
中进行此操作,因此它在全球范围内都发生在我的角度网站上,以进行类似Google Analytics(分析)的跟踪。
export class AppComponent implements OnInit {
constructor(private router: Router) {
router.events.subscribe(x => {
// only interested in the NavigationEnd type of event
if (!(x instanceof NavigationEnd)) {
return;
}
// Do stuff here
});
}
}
答案 1 :(得分:1)
ActivatedRoute
仅提供与注入ActivatedRoute
的组件相对应的路由信息。
根据您的实际需求,我建议以下解决方案之一:
Subject
的服务将事件转发到标头Router
并订阅router.events
示例:
router.events.pipe(
filter(x => x instanceof NavigationEnd)
).subscribe(x => {
// Do whatever you want with x.url
});