Route change can be detected using the router.events stream. (How to detect a route change in Angular 2?).
But I am not sure how to detect browser URL change.
Route change can be detected using the router.events stream. (How to detect a route change in Angular 2?).
But I am not sure how to detect browser URL change.
Inject Location and use the onUrlChange event listener:
import { Location } from '@angular/common';
constructor(private location: Location) {
location.onUrlChange(url => console.log(url));
}
You can inject Location and subscribe to it
import { Location } from '@angular/common';
...
constructor(location:Location) {
location.subscribe(val => console.log(val));
}
As Harry mentioned. This only notifies about popState events (the router or similar code changing the URL)
You can achieve to subscribe to router events from your root file like this
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);
});
}