次のルートがあります。
routes: {
"home": "login",
"login": "login",
"forum": "forum",
"group/:id/:group": "group",
"": "login",
}
ページ フォーラムにいる場合、URL は url.com/#forum ですが、フォーラム ビューからグループ ビューに移動すると、次のようになります。
router.navigate("group/:123/:nicegroup", {trigger: true});
問題: URL が「url.com/group/123/nicegroup」に変わります。その間、「#」がないと思うので「」ルートが呼び出され、空のルート「」が発火します。ログインページに行き着きます。
問題: "" ルートを削除すると、#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;