[英]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中。
谢谢
我知道这是旧线程,但我会加2美分。
相应的路径''
。
routes: { '' : 'index' }
路线只是空白。 第二部分可以是您想要的任何内容,即'index'
, 'home'
, 'landing'
。
为什么要使用#映射索引页,这不是一个好方法。 我建议您使用其他字符来映射索引页,例如“索引”。 如果必须使用#,则您的url应该是http://xxx.com/## ,因此它看起来很奇怪,索引清晰度比http://xxx.com/#index更好。
编辑:
routes: {
'': 'index'
},
为此,这意味着如果没有匹配的映射,它将自动匹配['':'index']。您想知道为什么只有第一次跳转到索引吗?我想第一次不匹配任何映射,所以符合['':'index']的要自动跳转到索引页面,以后总会有匹配的映射,不符合[“:'index']的话当然不会跳转到索引页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.