如何限制用户在浏览器中按下后退按钮?角度6

时间:2018-09-12 12:09:18

标签: angular browser

我正在为项目使用Angular 6。我需要限制用户单击浏览器中的后退按钮,而改为显示警报消息。

1 个答案:

答案 0 :(得分:1)

您需要编写一个类来实现用于处理事件的“ 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;
        }
    }
}

我还没有运行上面的代码。它只是一个想法,因此您可以从开始。我稍后检查并更新。