Javascript page.js取消页面离开

Javascript page.js取消页面离开,javascript,url-routing,page.js,Javascript,Url Routing,Page.js,在单页应用程序上,客户机正在 localhost/#/产品/123/编辑 他离开了,我想显示一个确认对话框“你确定要离开吗?”[确定][取消]。如果他点击[取消],他必须留在表单上 这是我当前的实现 page.exit('*',函数(ctx,下一步){ 如果(表格正在编辑且未提交){ 如果(确认(“您确定要离开”)){ next();//用户单击确定->离开 } } 否则{ next();//表单上没有任何更改=>leave } }); 问题是:每次我点击一个链接('/foo')并取消离

在单页应用程序上,客户机正在

localhost/#/产品/123/编辑

  • 他离开了,我想显示一个确认对话框“你确定要离开吗?”[确定][取消]。如果他点击[取消],他必须留在表单上

  • 这是我当前的实现


page.exit('*',函数(ctx,下一步){
如果(表格正在编辑且未提交){
如果(确认(“您确定要离开”)){
next();//用户单击确定->离开
}
}
否则{
next();//表单上没有任何更改=>leave
}
});

问题是:每次我点击一个链接('/foo')并取消离开。页面内容(我的大表单)保持不变,但
page.js
仍将
pushState('/foo')
,并且window.location更改为'/foo',不再与页面对应


我们如何才能真正取消pushState,并在
localhost/#上保持地址栏不变/product/123/edit

我也遇到了同样的问题,我所做的已经设置好了

context.handled=false

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