3

我有以下路线:

routes: {
        "home": "login",
        "login": "login",
        "forum": "forum",           
        "group/:id/:group": "group",
        "": "login",
}

如果我在页面论坛上,则 URL 是 url.com/#forum,但如果我从论坛视图导航到组视图:

router.navigate("group/:123/:nicegroup", {trigger: true});
  1. 问题:然后网址更改为“url.com/group/123/nicegroup”。与此同时,“”路线将被调用,因为我认为没有“#”并且空路线“”触发。我最终进入了登录页面。

  2. 问题:如果我删除“”路由,然后从#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;
4

1 回答 1

0

不久前有人问过这个问题 - 但是您是否在应用程序启动时启用了Backbone.History

Backbone.history.start()
于 2012-10-09T10:53:05.630 回答