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 が「url.com/group/123/nicegroup」に変わります。その間、「#」がないと思うので「」ルートが呼び出され、空のルート「」が発火します。ログインページに行き着きます。

  2. 問題: "" ルートを削除すると、#forum から次のようにページ グループに移動します。

    router.navigate("group/:123/:nicegroup", {トリガー: 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

繰り返しますが、2 番目の問題では既に "" ルートを削除しているので、気にする必要はありませんが、それでも 1 番目の問題です。

すべての 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 に答える