0

是我在这里的第一个问题,所以请耐心等待并原谅我的英语:)

当我在浏览器地址栏中输入链接时,一切正常。但是当我通过单击元素在浏览器中执行此操作时,集合是空的。但主要问题是服务器总是有相同的响应,但获取“不加载”任何项目,因此查看呈现空集合。

我使用 Backbone Boilerplate,

Browser.Views.Catalog - 它是 Backbone.View Browser.Catalog - 它是 Backbone.Collection

我的路由器:

var Router = Backbone.Router.extend({

    routes: {
        '' : 'browse'          
    },
    refreshCatalog: function(folder){
        app.layout.setViews({
            "#catalog" : new Browser.Views.Catalog({
                collection: app.catalog
            })
        }).render();
    },
    browse: function(folder){

        app.catalog = new Browser.Catalog();

        app.folders.fetch({
            error: function() { console.log(arguments); },
            success: this.refreshFolders(folder),
            data: $.param({folder: folder}),
            cache:false
        });
        //app.catalog = new Browser.Catalog();            
        app.catalog.fetch({
            error: function() { console.log(arguments); },
            success: this.refreshCatalog(folder),
            data: $.param({folder: folder}),
            cache:false
        });
    },
4

1 回答 1

1

我相信你应该在初始化函数中设置目录

app.catalog = new Browser.Catalog();

应该进入这里(添加这个功能)

initialize: function (options) {
    app.catalog = new Browser.Catalog();
}

加载页面时调用初始化函数,因此当浏览到 #catelog 时,它将被设置为http://backbonejs.org/#Router-constructor

于 2013-05-15T13:17:36.420 回答