javascript - Backbone Collection 模型有误

标签 javascript json backbone.js

如何重写 Backbone Collection fetch() 函数以获取 JSON 中的特定部分?

我得到的 json 看起来像这样:

{
   "success":true,
    "data":[
      {
         "id":1,
         "title":"asdf",
         "link":"http://www.xx.cc/image/asdf/",
         "date":1439993443000
      },
      {
         "id":2,
         "title":"qwer",
         "link":"http://www.xx.cc/image/qwer/",
         "date":1439993091000
      }
   ]
}

还有我的简单主干脚本:

var myCollection = Backbone.Collection.extend({
    url: 'url.to/my/rest/'
});

myCollection.fetch();
console.log(myCollection);

这里的问题是,我得到的集合的长度为 1,其中有 1 个模型。当我记录该集合并打开“n -> models -> 0 -> attribute -> data”时,我在 JSON 数据数组中找到了所有对象。

但是我需要“数据”数组的对象作为我的集合中的模型。到目前为止,我没有找到解决这个问题的方法,所以有人可以为我提供正确的想法吗?

最佳答案

为您的集合描述对象提供一个parse函数,如the docs中所述。 :

var myCollection = Backbone.Collection.extend({
    url: 'url.to/my/rest/',
    parse: function(data) {
      return data.data;
    }
});

该方法从服务器响应中提取相关部分,并根据该部分填充集合。

关于javascript - Backbone Collection 模型有误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142775/

相关文章:

javascript - 如何在 JavaScript 中设置全局变量和全局函数

javascript - 使用 JavaScript 获取字符串中的第一个整数

javascript - 没有 hack 或其他路由器的 Backbone.js 和 jQueryMobile 路由

javascript - 从 Marionette 中的 emptyView 添加到收藏夹

javascript - 您如何检测移动 safari 上的 3G 与 Wifi 连接?

javascript - React Native 组件未在 map() 迭代器内渲染

javascript - 仅发送表中变化的数据

php - 将数组索引的特定字段与重复值合并

java - 如何解决使用@JsonTypeInfo时两次添加type属性的问题

javascript - 全局和特定错误处理AJAX jQuery