我正在研究一个有某些形式的系统,每个形式都在angularjs ui-router的状态路径上。
我的需求是,如果对当前表单进行了一些更改,并且用户尝试在不保存的情况下更改为其他状态,系统将显示一条确认消息,例如confirm
的javascript。结果类似于多页面应用中的window.onbeforeunload
。
任何人都有办法做到这一点?
PS:我认为显示代码无济于事,但如果需要,请添加一些注释..
答案 0 :(得分:1)
那么,您可以检查ng-pristine类,它会告诉您表单是否已被用户修改过。 有关详细信息,请查看此链接ng-pristine
答案 1 :(得分:1)
是的,您可以对$ stateChangeStart进行对象拦截状态更改,并对触发stateChange的事件使用preventDefault以防止状态更改(如有必要)。这里有一个很好的解决方案: Using $state methods with $stateChangeStart toState and fromState in Angular ui-router