如何为单页应用程序实现 isDirty 标志 onLeave
How to implement a isDirty flag onLeave for a single page application?
我有一个用MVC4编写的单页应用程序,它使用pjax((将html推送到我的页面中的各种s中。 我有一个允许用户编辑数据的子表单,如果用户更改数据,则会在javascript中设置isDirty 标志,以触发页面底部的警报,指出有未保存的更新。 我还想在用户尝试离开页面而不保存时实现额外的警告。 如果我使用像这样的传统 onbeforeunload 函数
window.onbeforeunload = function() {
if (isDirty) {
return 'You have unsaved changes!';
}
return null;
};
如果我尝试关闭页面或完全离开网站,它会调用警报,但如果用户单击我的一个链接,该链接使用一些不同的信息重新填充它不会触发,因为您实际上并没有离开页面。 如何构建它,以便这些 pjax(( 链接之一导致类似于关闭页面的警报?
您可以订阅在 pjax 请求之前触发的全局事件:
$(document).on('pjax:beforeSend', function() {
if (isDirty) {
return confirm('You have unsaved changes! Are you sure you want to continue?');
}
return true;
});
可以将委托的事件处理程序添加到页面中的链接上。您只需要确保处理程序绑定到可能加载"新页面"的链接。
相关文章:
- 全局标志仅与第一个匹配项匹配的Regexp
- 如何在标志中检查权限
- javascript测试是否存在两个标志中的任何一个
- 启用具有多个布尔可观察标志的绑定
- 类叶组件中的connect()是react+redux中反模式的标志吗
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作
- --Node.js中的和谐标志0.12抛出SyntaxError
- 为什么â标志弹出
- 可填充pdf绿色或红色标志按钮
- Javascript .match() 在使用 /gi 标志时不起作用
- JavaScript RegExp 忽略案例标志与全局匹配标志
- 带有标志和文本的国家/地区建议列表
- 将标志从Node/Express应用程序Python shell传递到Python脚本
- 大口喝摩卡如何传递编译器标志
- js.erb文件中提供给RegExp构造函数的标志无效
- 为什么在设置了OnPush标志的情况下,Angular2在更改检测过程中同时捕捉到引用更改和基元更改
- 用作标志的Javascript全局变量
- 当与全局标志一起使用时,Javascript Regex在后续调用中返回null
- 单击JQuery设置布尔标志
- 如何为单页应用程序实现 isDirty 标志 onLeave