基于骨干哈希的导航和jqm

时间:2012-09-22 22:44:17

标签: jquery-mobile backbone.js

我有以下路线:

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});

  3. 网址更改为url.com/group/123/nicegroup,而不在组前面的#。它工作正常,但如果我再回去推浏览器的后退按钮,则网址再次变为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;
    

1 个答案:

答案 0 :(得分:0)

此问题刚才被提出 - 但您的应用程序启动时是否启用了Backbone.History

Backbone.history.start()