【问题标题】:Backbonejs collection returns wrong dataBackbonejs 集合返回错误数据
【发布时间】:2012-07-14 05:22:19
【问题描述】:

我在我的 RESTful api 中使用 Tastypie,在前端使用 Backbonejs。带有模型的fetch 可以正常工作,但是对于Backbone.Collection,我似乎得到了错误的响应:

_byCid: Object
  _byId: Object
  _callbacks: Object
  _onModelEvent: function () { [native code] }
  _removeReference: function () { [native code] }
  length: 1
  models: Array[1]
       0: d
       _callbacks: Object
       _changed: false
       _changing: false
       _escapedAttributes: Object
       _previousAttributes: Object
       attributes: Object
           cid: "c14"
           collection: d
               __proto__: o
               length: 1
               __proto__: Array[0]
               __proto__: o

这是我的收藏:

define(
[
    'models/ad',
],
function(AdModel){
    return Backbone.Collection.extend({
        url: '/api/v1/ad',
        model: AdModel,

        initialize: function(){
            this.fetch({
                success: function(coll, resp){
                    console.log(coll);
                }
            });
        }
    });
}

);

这是我的模型:

   define(
[],
function(){
    return Backbone.Model.extend({

    });
}

);

【问题讨论】:

  • 不确定您在寻找什么......它似乎正在创建一个集合并用模型填充它。您能否发布原始数据 fetch 返回以及您期望它做什么?
  • 它似乎用模型数组填充它,这不是我对Collection 的期望,对吧?返回的数据中应该有一个集合属性,对吗?如何从控制台复制原始数据?

标签: javascript backbone.js tastypie


【解决方案1】:

我必须改变的只是我的Collection.parse 方法。

define(
   [
     'models/ad',
   ],
function(AdModel){
   return Backbone.Collection.extend({
      url: '/api/v1/ad',
      model: AdModel,
      parse: function(data){
          return data.objects;
      },
      initialize: function(){
        this.fetch({
            success: function(coll, resp){
                console.log(coll);
            }
        });
    }
  });
}

一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-17
    • 2015-05-04
    • 2022-01-25
    相关资源
    最近更新 更多