在单页应用上,客户正在
编辑一个大表单 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
答案 0 :(得分:0)
我有同样的问题,我做的是设置
context.handled = false;
当我举起对话框(引导模态)时。 工作正常,除了一个小故障:如果我修改一些输入字段,然后尝试导航点击一个链接,然后选择留在页面,然后如果我点击相同的链接,不会触发任何操作。其他链接工作正常。