AngularJS:在卸载之前保存数据

时间:2015-09-07 08:32:59

标签: javascript angularjs local-storage onbeforeunload

我在用户卸载页面时使用此事件在localStorage中保存一些数据:

$window.onbeforeunload = function(){
            saveSomeDataInLocalStorage();
            if($scope.message){
                return "You haven't sent your message yet. Do you want to leave without sending?";
            }
            else
                return null;
        };

进入if($scope.message)条件时,返回确认消息,数据保存在localStorage(saveSomeDataInLocalStorage函数)中。 一切正确 ......

但是......如果输入else条件,则不会保存通过saveSomeDataInLocalStorage的数据。

我不会理解onbeforeunload事件可能......

我需要在两种情况下保存一些数据,否则返回确认。

有没有办法做到这一点?

非常感谢你!

1 个答案:

答案 0 :(得分:0)

如果返回null,则不显示任何消息,因此页面卸载继续。 否则,如果您显示此消息,实际上在确认过程中数据已保存,因此如果您想保存某些内容,则需要“冻结”页面。 尝试始终显示消息和除此之外的某些状态,因此用户可以看到实际保存的数据,并且在处理未完成时不按“是”。

此活动无法以任何方式截获。它的处理程序只能返回确认消息。希望这会有所帮助。