如何检测角度2中的URL更改?

时间:2016-10-07 01:21:45

标签: javascript angular angular2-routing

可以使用router.events流检测路由更改。 (How to detect a route change in Angular 2?)。

但我不确定如何检测浏览器网址更改。

3 个答案:

答案 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);
});
}