我有一个从REST API获取数据的ember应用程序。
我有一个未正确处理的特定模型联系人。
如果拼写错误的模型名称,则不会出现错误消息。 索引路由的有效负载包含大约1500个联系人,如下所示:
{"contacts":
[{"id":1,
"type":"customer",
"foreign_key":1242,
"first_name":"John",
"last_name":"Smith",
...
"created_at":"-0001-11-30 00:00:00",
"updated_at":"-0001-11-30 00:00:00",
"customer_id":1242
},
...
]
}
当我查看网络标签时,JSON响应看起来不错。浏览器能够很好地解析和显示响应。
我比较了对类似模型的反应,格式看起来和我一样。
在ember检查器中,在 Data 下,我得到1个id = null的联系人,其他字段未定义。
联系模式是:
import DS from 'ember-data';
export default DS.Model.extend({
type: DS.attr('string'),
foreign_key: DS.attr('number'),
first_name: DS.attr('string'),
last_name: DS.attr('string'),
... more strings
created_at: DS.attr('string'),
updated_at: DS.attr('string'),
customer: DS.belongsTo('customer')
});
ember 2.0.2
ember-data 2.0.0
使用pod结构
我如何进一步调查?看起来响应未被正确解析并正确转换为联系模型。
ANSWER
事实证明,您不应将type
用作模型中的一个字段名称
(我应该选择在定义数据库表时听到的小警告铃声......)
答案 0 :(得分:1)
尝试在Application Serializer中添加normalizeArrayResponse
,然后进行调试:
normalizeArrayResponse: function(store, primaryModelClass, payload, id, requestType) {
console.log(payload);
return this._super(store, primaryModelClass, normalizedRecords, id, requestType);
}

只是为了确认您的数据正在通过序列化程序。