【发布时间】:2016-04-30 11:39:11
【问题描述】:
我尝试将我的应用程序设置为 ember@2.5.0,但每次我使用商店并尝试使用时
this.store.findAll("user");
我总是收到无法读取未定义的属性“类型”的错误。
也初始化了存储、适配器以及模型和服务器。
适配器/application.js
import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
defaultSerialiser: "-default"
});
models/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
【问题讨论】:
-
你的适配器有错字,它应该是“defaultSerializer”而不是“defaultSerializer”,而且序列化器的名称对我来说也有问题(除非你实际上将你的序列化器命名为 -default.js)。如果您尝试使用默认序列化程序,那么我假设您不必在适配器中指定它。但是从您提供的响应来看,正如@Lux 提到的,如果您真的想使用 jsonapi,您应该更改有效负载格式。
-
你没有返回 jsonapi 格式,你返回的是 RESTAdapter/RESTSerializer 格式,你返回的是单个用户,但是你请求了一个用户集合。
标签: ember.js ember-data ember-cli