我有以下路线:
routes: {
"home": "login",
"login": "login",
"forum": "forum",
"group/:id/:group": "group",
"": "login",
}
如果我在页面论坛上,则 URL 是 url.com/#forum,但如果我从论坛视图导航到组视图:
router.navigate("group/:123/:nicegroup", {trigger: true});
问题:然后网址更改为“url.com/group/123/nicegroup”。与此同时,“”路线将被调用,因为我认为没有“#”并且空路线“”触发。我最终进入了登录页面。
问题:如果我删除“”路由,然后从#forum 导航到页面组:
router.navigate("group/:123/:nicegroup", {trigger: true});
url 更改为 url.com/group/123/nicegroup,组前没有 #。它工作正常,但如果我返回按浏览器的后退按钮,则 url 再次更改为 url.com/#forum 并且没有任何反应。我仍然停留在群组页面上,但出现错误:
Uncaught TypeError: Cannot call method 'indexOf' of undefined jquery.mobile-1.1.0.js:3791
$.extend.resetUIKeys jquery.mobile-1.1.0.js:3791
$.extend.hashValueAfterReset jquery.mobile-1.1.0.js:3803
$.extend.onPopState jquery.mobile-1.1.0.js:3863
jQuery.event.dispatch require-jquery.js:5385
jQuery.event.add.elemData.handle.eventHandle
同样,在第二个问题中,我已经删除了 "" 路线,这样它就不会打扰我,但这仍然是我的第一个问题。
我禁用了所有 jqm 导航。
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;