【问题标题】:Backbone Collection Fetch - point to specific JSON propertyBackbone Collection Fetch - 指向特定的 JSON 属性
【发布时间】:2014-01-27 13:49:24
【问题描述】:

我正在进行一个项目,我需要从服务器获取一些数据并从中创建一个主干集合。以下代码按预期工作:

var Collection = Backbone.Collection.extend({});
var collection = new Collection({});
collection.fetch({
    url: "http://localhost/api/somecollection",
    success: function(response) {
       // Do something here
    }    
})

结果是这样的:

{
   foo: "lorem ipsum",
   bar: [{
       a: "a",
       b: "b",
       c: "c"
   }, {
       a: "a",
       b: "b",
       c: "c"
   }]
}

“bar”属性是我想要变成 bb 集合的东西。我实际上是通过获取响应并使用其模型实例化一个新集合来做到这一点的:

success: function(response) {   
    var newCollection = new Collection(response.models[0].attributes.bar);
}

我在这里尝试做的是避免集合的新实例,只有一个就足够了。而且我无法更改服务器响应以返回我只需要的数组。

问题:有没有办法提供一个参数来“获取”,以便它可以引用“bar”属性?

【问题讨论】:

    标签: javascript json backbone.js


    【解决方案1】:

    覆盖 Colletion.parse 以自定义您的集合如何处理服务器响应:

    var Collection = Backbone.Collection.extend({
        parse: function (resp) {
            return resp.bar;
        }
    });
    var collection = new Collection();
    collection.fetch({
        url: "http://localhost/api/somecollection"  
    });
    

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      相关资源
      最近更新 更多