【问题标题】:How to create Backbone collection from following json array?如何从以下 json 数组创建 Backbone 集合?
【发布时间】:2013-04-01 13:19:58
【问题描述】:

我收到了一个包含用户的JSON(/users.json):

[
  [
    { "id": "43343", "project_id": "1", "username": "Amy" }
    { "id": "34244", "project_id": "1", "username": "Tommy" }
  ],
  [
    { "id": "76575", "project_id": "2", "username": "Izzy" }
    { "id": "13322", "project_id": "2", "username": "Sam" }
  ],
  { "id": "09983", "project_id": "3", "username": "Max" }
]

当项目有一个用户时,我得到一个不在数组中的用户哈希。

我想建立一个包含所有用户的 Backbone 集合。该怎么做?

【问题讨论】:

  • 老兄..你为什么要这样嵌套数组?

标签: javascript api node.js backbone.js collections


【解决方案1】:

您提供一组用户数组。因此,要在 init 方法中获取所有用户,您可以为其提供数据,但作为用户数组,即您将使用下划线 flatten 方法将这个原始数组数组展平一次:

data = _(data).flatten(true);

然后集合构造函数会原生地理解你的 json 数组。

但也许您已经在 fetching 方法中进行了这种转换,而这不是您面临的问题..

【讨论】:

    【解决方案2】:

    如果您已经使用用户模型定义了一个集合(例如 userCollection),您应该能够简单地执行以下操作:

    var col;
    $.getJSON("/users.json", function(data) {
        col = new userCollection(data);
    });
    

    这更有可能在集合的 fetch 函数中完成,但这里的原则是您可以将对象数组传递给集合,它将从 json 编组到主干模型。

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 1970-01-01
      • 2021-01-28
      • 2022-01-20
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 2023-03-06
      相关资源
      最近更新 更多