我的网站的每个页面都有一个导航栏组件 我希望它检查URL何时更改为HostListener。
@HostListener('window:hashchange', ['$event'])
onHashChange(event) {
this.checkCurrentURL();
}
private checkCurrentURL(){
console.log("loaction : "+window.location.pathname)
}
然而它并不起作用。 有什么想法吗?
编辑:解决方案
我找到的解决方案是没有HostListener,但它可以工作。
constructor(private router : Router){
router.events.subscribe((val) => {
this.checkCurrentURL();
});
}
答案 0 :(得分:3)
您不需要HostListener。假设您正在开发单页应用程序,您想订阅路线更改事件。
答案 1 :(得分:0)
由于Angular是单页应用程序, 因此您可以在组件之一中定义一个全局变量 window ,并使用window全局变量,我们可以跟踪每条路线,,
window.location.href
window.location.href 将返回当前的网址,因此我们可以检查URL何时更改
constructor(private router : Router){
router.events.subscribe((val) => {
console.log(window.location.href);
});
}