繁体   English   中英

Backbone.js'#'路由不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM