可以使用router.events
流检测路由更改。 (How to detect a route change in Angular 2?)。
但我不确定如何检测浏览器网址更改。
答案 0 :(得分:2)
注入 Location
并使用 onUrlChange
事件侦听器:
import { Location } from '@angular/common';
constructor(private location: Location) {
location.onUrlChange(url => console.log(url));
}
答案 1 :(得分:1)
您可以注入Location
并订阅
constructor(location:Location) {
location.subscribe(val => console.log(val);
}
哈利提到。这只会通知popState事件(更改URL的路由器或类似代码)
答案 2 :(得分:1)
您可以像这样从根文件中订阅路由器事件
constructor(private router: Router,
private aRouter: ActivatedRoute) {
this.router.events.pipe(filter(e => e instanceof NavigationEnd))
.subscribe((s: NavigationEnd) => {
//write your logic here
console.log(s);
});
}