0

单页应用程序中,客户端正在编辑一个大表单

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

4

1 回答 1

0

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

context.handled = false;

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

请参阅github 中的相应问题

于 2015-10-16T09:50:34.520 回答