Angular window.onbeforeunload

时间:2015-10-06 12:52:27

标签: javascript angularjs angular-ui-router

我正在研究一个有某些形式的系统,每个形式都在angularjs ui-router的状态路径上。

我的需求是,如果对当前表单进行了一些更改,并且用户尝试在不保存的情况下更改为其他状态,系统将显示一条确认消息,例如confirm的javascript。结果类似于多页面应用中的window.onbeforeunload

任何人都有办法做到这一点?

PS:我认为显示代码无济于事,但如果需要,请添加一些注释..

2 个答案:

答案 0 :(得分:1)

那么,您可以检查ng-pristine类,它会告诉您表单是否已被用户修改过。 有关详细信息,请查看此链接ng-pristine

答案 1 :(得分:1)

是的,您可以对$ stateChangeStart进行对象拦截状态更改,并对触发stateChange的事件使用preventDefault以防止状态更改(如有必要)。这里有一个很好的解决方案: Using $state methods with $stateChangeStart toState and fromState in Angular ui-router