Ember-Data可以从一个JSON有效负载处理两个模型吗?

时间:2015-04-13 14:27:14

标签: ember.js ember-data

我有来自服务器的JSON,如下所示:

data: {
       user: {
              address: {
                         id: "id",
                         city: "city",
                         street: "street",
                         .......
              }
              name: "name",
              ......
       }

       authentication-token: {
                         token: "token",
                         id: "id"
       }
}

这个想法是将这两个模型(用户,身份验证令牌)以相同的名称存储在ember存储中。当我从服务器获取上述响应时,模型用户已成功保存,但模型身份验证令牌根本不会保存到存储中。当我在将数据传递给序列化程序之前记录数据(在适配器中)时,我看到JSON具有Ember-Data期望的结构。我不知道问题是Ember-Data是否一次无法成功处理两个模型,然后将其保存到相应的模型或其他内容。想法?

1 个答案:

答案 0 :(得分:0)

现在it对我来说都是有道理的。当然,这是你last question中的问题。无论如何,ember-data的RESTAdapter无法处理这个问题。如果您正在请求单一资源user,那么它最多只能将此用户视为单一答案。任何其他可能“侧载”的资源必须是一个数组。请求的单数user可以是user键下的记录,也可以是users键中数组中的第一个条目。其他一切(元数据除外)必须是复数。

如果您要求复数资源users,则主响应必须位于users键下,任何不属于响应的侧载用户都以_为准在_users键下。

对于您的示例,所有这些意味着您的json必须格式如下:

data: {
       user: {
              address: {
                         id: "id",
                         city: "city",
                         street: "street",
                         .......
              }
              name: "name",
              ......
       }

       authentication-tokens: [{
                         token: "token",
                         id: "id"
       }]
}

如果您无法更改服务器,则必须配置RESTAdapter以通过Serializer的normalize规范化JSON数据。