我目前正在开发基于以下模块化方法的移动应用程序:
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();
});
});
});
我也在这里使用 WAMP 作为 Web 服务器,并使用 firefox 作为测试浏览器。
有人有类似的问题,可以给我一些关于如何解决这个问题的见解吗?
更新#1:一些补充信息,此处未调用警报:
module1_view : function(id)
{
alert(id);
}
因此,我可能认为代码中出现了一些问题。