主干模板-获取方法不刷新集合

Backbone Boilerplate - fetch method don't refresh collection

本文关键字:方法 刷新 集合 获取      更新时间:2023-09-26

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

当我在浏览器地址栏中输入链接时,一切正常。但当我在浏览器中单击element时,collection是空的。但主要问题是总是有相同的响应从服务器,但fetch"不加载"任何项目,所以视图渲染空集合。

我使用主干模板,

Browser.Views。目录-它是主干。视图浏览器。目录-它是骨干。收集

我的路由器:

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
        });
    },

我认为应该在initialize函数中设置目录

app.catalog = new Browser.Catalog();

应该放在这里(添加这个函数)

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

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