我有一个包含多个视图的AngularJS应用程序(使用ng-view)。在应用程序的javascript文件中,我截获了窗口的OnBeforeUnload事件,以确保用户在不保存其工作的情况下不离开网站。但是,我注意到OnBeforeUnload事件在IE9中被触发了很多次(例如,当Angular视图发生更改时,或刷新视图时)。
基本上,OnBeforeUnload在它不应该被触发时触发。
到目前为止,我已经通过在routeChangeStart和routeChangeSuccess事件中设置和清除标志来解决这个问题,但似乎总是存在另一个问题。
还有其他人看过这个问题吗?
提前致谢....
答案 0 :(得分:0)
我有类似的问题。搜索完之后,我意识到即使刷新视图,window.onbeforeunload也会执行。 另一方面,关于在奇怪时间执行的代码,我认为你需要使用$ rootScope。$ apply:
window.onbeforeunload = function () {
$rootScope.$apply(function () {
//Your code here
}
}