angular - 如何限制用户在浏览器中按下返回按钮 | 角度 6
问题描述
我在我的项目中使用 Angular 6。我需要限制用户点击浏览器中的后退按钮并显示警报消息。
解决方案
您需要编写一个类来实现“ CanDeactivate ”接口,您可以在其中处理事件。尝试在后退按钮事件中使用location.go()重定向到活动 URL 本身。
location.go('getTheCurrentPathToRedirect');
像下面这样的东西:
export class CanDeactivateBack implements CanDeactivate<any> {
constructor(public location: Location, public router: Router) {}
canDeactivate(component: any, currentRoute: ActivatedRouteSnapshot): boolean {
//YourConditionIfBackButttonPress - check for the history back click
if (YourConditionIfBackButttonPress) {
let urlPath = this.router.createUrlTree([], currentRoute);
let curUrlPath = urlPath.toString();
this.location.go(curUrlPath);
return false;
} else {
return true;
}
}
}
我没有运行上面的代码。它只是一个想法,所以你可以开始。让我稍后检查并更新。
推荐阅读
- python - 使用 numpy 将图像快速拆分并重新组合成重叠的补丁
- greenplum - Greenplum 数据库是否支持参数化游标?
- c# - 如何将项目列表传递给 Web 服务
- google-bigquery - 如何通过 CAST 更改 BigQuery 中嵌套字段的类型?
- python - django如何从另一个目录导入文件
- php - WooCommerce 订阅 - 通知翻译不起作用
- c# - 是否可以在 C# 中从 HelixToolKit.WPF 迁移到 HelixToolKit.WPF.SharpDX
- python - 在 Google Colab 上将列表转换为单热编码列表时 RAM 内存不足
- java - 如何将 com.vaadin.ui 导入 Java 项目
- node.js - 导入 node.js 模块 - SyntaxError: Unexpected identifier