使用triggerRoute = true;
导航方法时,页面可以很好地导航到新页面,但历史记录不会更新。
点击Android设备(Nexus S)上的后退按钮时,会弹出历史记录,但导航不会发生。
如果我为false
传递triggerRoute
然后调用Backbone.history.loadUrl();
那么后退按钮确实有效,但有点不正常。
导航方法有这个评论......
// URL-encoding the fragment in advance. This does not trigger
// a `hashchange` event.
在阅读了几篇帖子后,在我看来,使用导航方法是正确的方法,应该更新历史......
代码段......
er.getApp().getController().navigate('home', true);
OR
er.getApp().getController().navigate('home');
Backbone.history.loadUrl();
是否存在jquerymobile和骨干组合的已知路由问题。这里较旧的答案与早期版本的backbone.js有关,不再有效......
答案 0 :(得分:1)
确定。找到了解决方案。基本上告诉jquerymobile
不要对后退按钮和hashchange
事件做任何事情,让骨干完全处理它。
在index.html,appLoading事件处理程序中,有代码将Jquerymobile绑定到后退按钮,将其删除。
//removed this part
document.addEventListener("backbutton", function(){
if (window.history.length > 0) {
window.history.back();
return false;
}
navigator.app.exitApp();
}, true);
// Since we are using the backbone router we want to disable
// auto link routing of jquery mobile.
// The code below for mobileinit
// notice the last two settings
$(document).bind("mobileinit", function() {
$.mobile.ajaxEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
$.mobile.changePage.defaults.changeHash = false;
});