Javascript Dojo MVC:如何在数据错误时取消视图转换
我正在使用Dojo 1.10进行SPA。在应用程序中,我有一个视图,dojox/app/view的实例,允许用户操作从模型加载的数据。视图有一个后退按钮,允许用户切换到主屏幕 后退按钮的处理程序使用Javascript Dojo MVC:如何在数据错误时取消视图转换,javascript,dojo,single-page-application,dojox.mobile,dojox.app,Javascript,Dojo,Single Page Application,Dojox.mobile,Dojox.app,我正在使用Dojo 1.10进行SPA。在应用程序中,我有一个视图,dojox/app/view的实例,允许用户操作从模型加载的数据。视图有一个后退按钮,允许用户切换到主屏幕 后退按钮的处理程序使用 TransitionEvent({ app: self.app, target: evt, transitionOptions: { history: true,
TransitionEvent({
app: self.app,
target: evt,
transitionOptions: {
history: true,
params: {...},
title: "ViewListView",
target: "ViewListView",
url: "#ViewListView"
},
triggerEvent: evt
}).dispatch();
切换回主屏幕
这里的用例是,如果存在未保存的数据更改,则应在转换之前警告用户。应向用户提供放弃更改并继续转换或取消转换并保持在同一视图上的选项,以便能够保存更改
这可以在返回按钮的处理程序中实现,因为转换是手动触发的,如果用户选择在返回之前保存更改,则可以防止发生转换。问题是,当用户按下浏览器后退按钮时,转换在内部进行,无法捕获以检查是否有任何未保存的数据更改并停止转换
我试过:
beforeDeactivate(nextView,data)在视图每次被转换出来时隐藏之前被调用
但是找不到一种方法来拦截过渡。如何在应用检查之前拦截转换?是否可以在某个位置截取过渡,以便它同时捕获“从浏览器返回”按钮的过渡和从视图中手动触发的过渡
感谢您的帮助。如果有未保存的数据,扩展历史记录控制器以支持检查以避免执行转换应该不难