如何处理/ prevent浏览器导航或angularjs重装? [英] How to handle / prevent browser navigation or reload in angularjs?

查看:168
本文介绍了如何处理/ prevent浏览器导航或angularjs重装?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的角度应用程序,以检测当用户从导航离开或重新加载页面。

I would like to detect in my angular app when a user is navigating away from or reloading a page.

应用(使用一些登录过程)然后应区分它被重新加载,所以用户不会丢失他的身份验证数据和应用程序应能够从localStorage的恢复,然后必要的信息。

App (that uses some login process) should then distinguish that it was re-loaded, so user won't lose his auth data and app should be able to restore then necessary information from localStorage.

请建议一些最好的技术来处理的浏览器重装/导航。

Please suggest some best techniques to "handle" browser reloading / navigation.

推荐答案

所有你的JavaScript,并在内存中的变量消失重装。在JS,你知道什么时候code是在第一时间再次运行页面重新加载了

All of your javascript and in memory variables disappear on reload. In js, you know the page was reloaded when the code is running again for the first time.

要处理的重载本身(包括按F5),并重新加载,甚至取消之前采取行动,使用'beforeunload事件。

To handle the reload itself (which includes hitting F5) and to take action before it reloads or even cancel, use 'beforeunload' event.

var windowElement = angular.element($window);
windowElement.on('beforeunload', function (event) {
    // do whatever you want in here before the page unloads.        

    // the following line of code will prevent reload or navigating away.
    event.preventDefault();
});

这篇关于如何处理/ prevent浏览器导航或angularjs重装?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆