page.js取消页面离开

时间:2015-10-01 23:52:40

标签: javascript url-routing page.js

单页应用上,客户正在

编辑一个大表单

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

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我做的是设置

context.handled = false;

当我举起对话框(引导模态)时。 工作正常,除了一个小故障:如果我修改一些输入字段,然后尝试导航点击一个链接,然后选择留在页面,然后如果我点击相同的链接,不会触发任何操作。其他链接工作正常。

请参阅corresponding issue in github