在我的路由器中,我指定了路由器'#'来调用索引函数。这是第一次加载应用程序。但是,在导航离开后再返回,视图不再呈现。这里是我的路由器:Backbone.js'#'route not working
CommunityApp.Routers.Main = Backbone.Router.extend({
routes: {
'': 'index',
'#': 'index',
},
initialize: function() {
this.communities = new CommunityApp.Collections.Communities();
this.communities.fetch();
},
index: function() {
console.log('index called');
view = new CommunityApp.Views.CommunitiesIndex({collection: this.communities});
$('#main').html(view.render().el);
}
});
我看到该函数被调用,因为它记录'索引调用'。然而,只有在我第一次导航到localhost:3000 /#时才会显示视图。如果我点击其他地方导致回到'#',该函数被调用,但CommunitiesIndex视图永远不会被插入到DOM中。
感谢
不知道它是否能解决你的问题,但是你不在路由中使用'#'每个路由都是在'#'之后发生的,所以'#'路由映射到一个URL为http://domain.com/##'。 – jackwanders 2012-07-09 16:12:50
所以默认情况下,它应该只是''? – 0xSina 2012-07-09 16:22:32
是的,你的默认路由应该是'''' – jackwanders 2012-07-09 16:42:11