在单页应用程序中,客户端正在
编辑一个大表单 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')
和窗口。位置更改为'/foo',不再与页面
我们如何取消pushState,并保持地址栏不变在localhost/#!/product/123/edit
我遇到了同样的问题,我所做的是设置
上下文。
当我启动对话框(一个引导模式)。工作正常,除了一个小故障:如果我修改一些输入字段,然后尝试导航到单击链接,然后选择留在页面中,然后如果我点击相同的链接,没有动作被触发。其他链接正常。