在单页应用程序中,客户端正在编辑一个大表单
localhost/#!/product/123/edit
他导航离开,我想显示一个确认对话框“你确定要离开吗?” [确定] [取消]。如果他点击[取消],他必须留在表格中。
这是我当前的实现
page.exit('*', function (ctx, next) {
if (form is editing and not submitted) {
if (confirm("Are you sure you want to leave")) {
next(); //user click OK -> leave
}
}
else {
next(); //nothing changed on the form => leave
}
});
问题:每次我点击一个链接('/foo')并取消离开。页面内容(我的大表单)保持不变,但page.js
仍会pushState('/foo')
改变 window.location 为 '/foo' 不再与页面对应
我们怎样才能真正取消pushState,并让地址栏保持不变localhost/#!/product/123/edit