我有一个组件,我需要检测用户是否在他的浏览器中按下按钮以导航回来。
目前我正在订阅路由器事件。
constructor(private router: Router,private activatedRoute: ActivatedRoute) { this.routerSubscription = router.events .subscribe(event => { // if (event.navigatesBack()) ... }); }
我知道我可以使用window.onpopstate,但在使用Angular2时感觉就像是黑客。
可以使用具有onPopState侦听器的PlatformLocation。
import { PlatformLocation } from '@angular/common' (...) constructor(location: PlatformLocation) { location.onPopState(() => { console.log('pressed back!'); }); } (...)