Angular 如何通过按后退按钮避免默认操作?
如何通过按后退按钮避免默认操作 这是我的密码Angular 如何通过按后退按钮避免默认操作?,angular,Angular,如何通过按后退按钮避免默认操作 这是我的密码 @HostListener('window:popstate', ['$event']) onPopState(event) { this.open('ac'); } open(form){ if(form == 'ac'){ this.router.navigate(['/']); } ... } 按“后退”按钮将进入上一页,而不是“this.router.navigate(['/'
@HostListener('window:popstate', ['$event'])
onPopState(event) {
this.open('ac');
}
open(form){
if(form == 'ac'){
this.router.navigate(['/']);
}
...
}
按“后退”按钮将进入上一页,而不是“this.router.navigate(['/']);”中指定的页面。这将阻止默认操作:
event.preventDefault()
当用户导航会话历史记录时,当活动历史记录条目更改时,将触发窗口界面的popstate事件。它将当前历史记录条目更改为用户访问的最后一页的历史记录条目,或者,如果使用history.pushState()将历史记录条目添加到历史记录堆栈中,则使用该历史记录条目。
(如本文所述:) 因此,在历史堆栈中添加一个历史条目将有助于更改“返回”目标 解决方案:
假设我当前在“/page1”中,我想在按下后退按钮时导航到“/”。检查以下代码段
ngOnInit() {
history.pushState( {} , 'page1', '/page1' );
history.pushState( {} , 'home', '/' );
}
希望这有帮助