【发布时间】:2014-08-08 05:11:54
【问题描述】:
我的模型是 var UserLookup = DS.Model.extend({ 'name': DS.attr('string') });
在我的适配器中,我查找如下 this.store.find('userLookup').then(function(results){ }
来自 REST API 的响应是 {"userLookups":[{"id":1,"name":"xxx"},{"id":2,"name":"yyyy"}]}
在反序列化时失败并出现错误 Error: Assertion Failed: The response from a findAll must be an Array, not undefined
我确保模型查找和 JSON 响应中的键都是驼峰式的。如果我用一个词重命名模型,一切正常。
我是否在序列化程序中遗漏了可能导致此错误的内容?
【问题讨论】:
-
您是否在应用程序变量上注册了模型,即
App.UserLookup = ...?因为我认为如果您将其注册为全局,它不会起作用。 -
我从路由器返回模型,如果我将模型重命名为单个单词,这将起作用。仅在具有多个单词名称的模型的情况下才会出现问题。
-
你能放一个 bin (emberjs.jsbin.com) 来显示问题吗?
-
您是否尝试过以 JSON 格式返回
{ "user_lookups": [...] },即使用蛇形大小写而不是骆驼形大小写? -
您使用的是 Rest 还是 ActiveModel 序列化程序?如果是这样,您可以尝试调试github.com/emberjs/data/blob/master/packages/ember-data/lib/… 以查看 ED 正在尝试查找您的“userLookups”键的类型吗?
标签: ember.js ember-data