我正在为我的REST服务器启动一个使用带有Django Rest Framework的ember.js的项目。
我在ember端使用adapter将数据转换为Ember需要的正确格式。我正在向我的服务器发出请求,并获得200返回数据,但是Ember正在抛出错误Error while processing route: index Assertion Failed: The response from a findAll must be an Array, not undefined
。
有很多关于此错误的帖子,但我找不到任何与我的问题相关的帖子,它似乎是一种可能由许多事情引起的一揽子错误?
我很茫然,因为我的服务器正在接收请求并以我期望从服务器获得的格式返回数据。我不知道如何判断错误是否在我的Ember应用程序中,或者我的数据是否未被适配器正确转换。
// routers/index.js
export default Ember.Route.extend({
model: function() {
return this.store.find('user');
}
});
// config/environment.js
APP: {
API_NAMESPACE: 'v1',
ENV.APP.API_HOST = 'http://localhost:8000',
},
在我的路由器中使用此代码是我如何得到错误。我觉得这是一个非常简单的问题,但似乎无法超越它。我已经尝试将代码移动到不同的部分,例如控制器,只是为了看到我可以获取数据。希望有人有一个建议,谢谢。让我知道我可以发布的其他任何帮助。
编辑:浏览源代码时出现问题:
extractArray: function(store, type, payload) {
// Convert payload to json format expected by the RESTSerializer.
// This function is being overridden instead of normalizePayload()
// because `results` will only be in lists.
console.log(type);
var convertedPayload = {};
if (payload.results) {
convertedPayload[type.modelName] = payload.results;
} else {
convertedPayload[type.modelName] = payload;
}
return this._super(store, type, convertedPayload);
},
type.modelName
未定义。当我查看类型对象时,它只是一个空白的Class()。当我记录type.toString()
时,我得到joe2go@model:user:
这可能与我的模特有关吗?对我来说,一切似乎都很标准。
import DS from 'ember-data';
export default DS.Model.extend({
username: DS.attr('string'),
firstName: DS.attr('string'),
lastName: DS.attr('string')
});
答案 0 :(得分:0)
包中显然有一个错误。
extractArray: function(store, type, payload) {
// Convert payload to json format expected by the RESTSerializer.
// This function is being overridden instead of normalizePayload()
// because `results` will only be in lists.
var convertedPayload = {};
if (payload.results) {
convertedPayload[type.modelName] = payload.results;
} else {
convertedPayload[type.modelName] = payload;
}
return this._super(store, type, convertedPayload);
},
在序列化程序中,它引用type.modelName
,但应该是type.typeKey