簡體   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