我尝试在ember@2.5.0中设置我的应用程序,但每次我使用商店并尝试使用
this.store.findAll("user");
我总是得到错误,说不能读取未定义的属性'type'。
初始化商店,适配器以及模型和服务器。
适配器/ application.js中
import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
defaultSerialiser: "-default"
});
模型/ user.js的
import Model from 'ember-data/model';
import attr from 'ember-data/attr'
export default Model.extend({
"name": attr()
});
和服务器端就像
app.get("/users", function(req, res) {
res.send({"name": "Surya"});
});
获取错误
TypeError: Cannot read property 'type' of undefined
at _pushInternalModel (store.js:1524)
at push (store.js:1501)
at finders.js:148
at Object.Backburner.run (ember.debug.js:678)
at _adapterRun (store.js:1733)
at finders.js:145
at tryCatch (ember.debug.js:53806)
at invokeCallback (ember.debug.js:53821)
at publish (ember.debug.js:53789)
at ember.debug.js:32054
答案 0 :(得分:1)
您使用的是JSONAPI序列化程序和适配器,但您的回复是
{
"user": {
"name": "Surya"
}
}
不是有效的JSONAPI回复。它应该是
{
"data": {
"type": "user",
"id": "0",
"attributes": {
"name": "Surya"
}
}
}