angular - 如何通过按返回按钮来避免默认操作?
问题描述
如何通过按返回按钮来避免默认操作?
这是我的代码
@HostListener('window:popstate', ['$event'])
onPopState(event) {
this.open('ac');
}
open(form){
if(form == 'ac'){
this.router.navigate(['/']);
}
...
}
按后退按钮会将我带到上一页,而不是“this.router.navigate (['/']);”中分配的页面
解决方案
当用户浏览会话历史记录时活动历史记录条目发生更改时,会触发 Window 界面的 popstate 事件。它将当前历史条目更改为用户访问的最后一页的条目,或者,如果使用history.pushState() 将历史条目添加到历史堆栈,则使用该历史条目。
(如此处所述:https ://developer.mozilla.org/en-US/docs/Web/Events/popstate )。
因此,向历史堆栈添加历史条目将帮助您更改“返回”目的地。
解决方案:
假设我目前在“/page1”中,并且我想在按下后退按钮时导航到“/”。检查以下代码片段。
ngOnInit() {
history.pushState( {} , 'page1', '/page1' );
history.pushState( {} , 'home', '/' );
}
希望这可以帮助。
推荐阅读
- android - 键入'_InternalLinkedHashMap
' 不是类型转换中类型 'Session' 的子类型 - c - 当 stdin 和 stdout 都连接到命名管道时,是否可以防止应用程序挂起?
- firebase - 如何验证自定义令牌?
- shell - 如何使用 shell 脚本获取下一个可用号码?
- python - Python。如何修改/替换作为字典中值的列表的元素?
- java - 单元测试Json字符串转换
- python - Python:按日期范围过滤 Outlook 味精
- io - io_uring 到底是什么?
- python - 使用 for 循环创建列表列表
- flutter - 有什么方法可以获取“Dart”中类(apiData)返回的数据?