0

我得到一个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 集合。怎么做?

4

2 回答 2

4

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

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

然后集合构造函数将本机理解您的 json 数组。

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

于 2013-04-01T13:52:44.830 回答
1

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

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

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

于 2013-04-01T13:29:40.090 回答