我有来自服务器的JSON,如下所示:
data: {
user: {
address: {
id: "id",
city: "city",
street: "street",
.......
}
name: "name",
......
}
authentication-token: {
token: "token",
id: "id"
}
}
这个想法是将这两个模型(用户,身份验证令牌)以相同的名称存储在ember存储中。当我从服务器获取上述响应时,模型用户已成功保存,但模型身份验证令牌根本不会保存到存储中。当我在将数据传递给序列化程序之前记录数据(在适配器中)时,我看到JSON具有Ember-Data期望的结构。我不知道问题是Ember-Data是否一次无法成功处理两个模型,然后将其保存到相应的模型或其他内容。想法?
答案 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数据。