I have a component and I need to detect if user pressed back button in his browser to navigate back.
Currently I'm subscribing router events.
constructor(private router: Router, private activatedRoute: ActivatedRoute) { this.routerSubscription = router.events .subscribe(event => { // if (event.navigatesBack()) ... }); }
I know that I can use window.onpopstate
but it feels like a hack when using Angular2.
EDIT Please don't do this.
The official docs say "This class should not be used directly by an application developer. Instead, use Location." Ref: https://angular.io/api/common/PlatformLocation
It's possible to use PlatformLocation
which has onPopState
listener.
import { PlatformLocation } from '@angular/common' (...) constructor(location: PlatformLocation) { location.onPopState(() => { console.log('pressed back!'); }); } (...)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With