OnBeforeUnload事件在IE9中由AngularJS触发了很多次

时间:2015-04-14 14:42:08

标签: javascript angularjs single-page-application

我有一个包含多个视图的AngularJS应用程序(使用ng-view)。在应用程序的javascript文件中,我截获了窗口的OnBeforeUnload事件,以确保用户在不保存其工作的情况下不离开网站。但是,我注意到OnBeforeUnload事件在IE9中被触发了很多次(例如,当Angular视图发生更改时,或刷新视图时)。

基本上,OnBeforeUnload在它不应该被触发时触发。

到目前为止,我已经通过在routeChangeStart和routeChangeSuccess事件中设置和清除标志来解决这个问题,但似乎总是存在另一个问题。

还有其他人看过这个问题吗?

提前致谢....

1 个答案:

答案 0 :(得分:0)

我有类似的问题。搜索完之后,我意识到即使刷新视图,window.onbeforeunload也会执行。 另一方面,关于在奇怪时间执行的代码,我认为你需要使用$ rootScope。$ apply:

window.onbeforeunload = function () {
    $rootScope.$apply(function () {
        //Your code here
    }
}

来源:The view is not updated in AngularJS