Backbone Model / Collection fetch不存储结果

时间:2014-03-02 08:51:28

标签: backbone.js

再次提出另一个有趣的Backbone.js问题。

当我拨打Model#fetch()Collection#fetch()时,Backbone会调用服务器,但它不会存储结果,但保存按预期工作。

在每个教程中,我发现他们解释说模型将存储在fetch()之后。

例如

response包含'success',collection包含带有正确json的XHR对象

tagCollection = new CategoryCollection();

tagCollection.fetch({
    complete: function(collection, response) {
        console.log(tagCollection.models);
    },
});

/models/category.js

define(['underscore', 'backbone'], function(_, Backbone){

    var CategoryModel = Backbone.Model.extend({
        urlRoot: '/api/v1/category',
    });

    return CategoryModel
});

/collections/category.js

define(['underscore', 'backbone', 'categoryModel'], function(_, Backbone, CategoryModel){

    var CategoryCollection = Backbone.Collection.extend({
        model: CategoryModel,
        url: '/api/v1/category'
    });

    return CategoryCollection
});

/ API / V1 /类别(上传.json)

[
    {
        id: "1",
        name: "Allgemeines",
        deleted_at: null,
        created_at: "2014-02-23 17:22:22",
        updated_at: "2014-02-23 17:22:22"
    }
]

1 个答案:

答案 0 :(得分:0)

Fetch接受'成功'回调而不是'完成'回调。假设数据从服务器成功传入主干,它可能只是没有注销,因为回调没有触发。试试这个:

tagCollection.fetch({
    success: function(collection, response) {
        console.log(tagCollection.toJSON());
    },
});