私は現在、以下のモジュラー アプローチに基づくモバイル アプリケーションに取り組んでいます。
http://weblog.bocoup.com/organizing-your-backbone-js-application-with-modules/
ルーティングに問題があり、何が問題を引き起こしているのかを突き止めることができません。
私のルーターの定義は次のとおりです。
var AppRouter = Backbone.Router.extend({
routes: {
'module1' : 'module1_home', // working
'module1view/:id' : 'module1_view', //Not working
// Default
'*actions': 'defaultAction' //Working
},
initialize:function () {
// Handle back button throughout the application
$('.back').live('click', function(event) {
window.history.back();
return false;
});
this.firstPage = true;
},
module1_view : function(id)
{
var module1 = MyApp.module('module1');
var view = new module1.DisplayView;
this.changePage(view);
},
defaultAction : function () {
var home = MyApp.module('home');
var view = new home.DefaultView;
this.changePage(view);
},
changePage:function (page) {
$(page.el).attr('data-role', 'page');
page.render();
$('body').append($(page.el));
var transition = 'slide';
if (this.firstPage) {
transition = 'none';
this.firstPage = false;
}
$.mobile.changePage($(page.el), {
changeHash:true,
transition: transition
});
}
});
URL の例と結果を次に示します。
http://localhost:12345/myapp/ => shows the default view
http://localhost:12345/myapp/index.html => shows the default view
http://localhost:12345/myapp/#module1 => shows module1 home view
http://localhost:12345/myapp/index.html#module1 => shows module1 home view
http://localhost:12345/myapp/#module1view/123 => url changes to http://localhost:12345/myapp/module1view/123 and displays the default view
http://localhost:12345/myapp/index.html#module1/123 => url changes to http://localhost:12345/myapp/module1view/123 and displays the default view
を使用してJQMナビゲーションも無効にしました
jQuery(function($) {
$(document).on("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
// Remove page from DOM when it's being replaced
$('div[data-role="page"]').live('pagehide', function (event, ui) {
$(event.currentTarget).remove();
});
});
});
また、ここでは Web サーバーとして WAMP を使用し、テスト ブラウザーとして firefox を使用しています。
誰かが同様の問題を抱えていて、この問題を解決する方法についていくつかの洞察を得ることができますか?
更新 #1: いくつかの補足情報、アラートはここでは呼び出されません:
module1_view : function(id)
{
alert(id);
}
したがって、コードの上部で何かが起こっていると思うかもしれません。