【发布时间】:2014-05-27 02:50:43
【问题描述】:
当我点击我的应用程序的“/”时,我得到了下面的堆栈跟踪
Error while loading route: TypeError: Cannot read property 'forEach' of undefined
at Function.Model.reopenClass.eachAttribute (http://localhost:3000/assets/ember-data.js?body=1:4870:32)
at JSONSerializer.extend.normalizeAttributes (http://localhost:3000/assets/ember-data.js?body=1:2906:16)
at JSONSerializer.extend.normalize (http://localhost:3000/assets/ember-data.js?body=1:2827:14)
at superWrapper (http://localhost:3000/assets/ember.js?body=1:1293:16)
at superFunction [as _super] (http://localhost:3000/assets/ember.js?body=1:7724:16)
at RESTSerializer.extend.normalize (http://localhost:3000/assets/ember-data.js?body=1:378:21)
at superWrapper [as normalize] (http://localhost:3000/assets/ember.js?body=1:1293:16)
at null.<anonymous> (http://localhost:3000/assets/ember-data.js?body=1:3179:35)
at Array.map (native)
at JSONSerializer.extend.extractArray (http://localhost:3000/assets/ember-data.js?body=1:3178:37)
相关代码在这里(在 Coffeescript 中):
Plnnr.ApplicationRoute = Ember.Route.extend(
model: ->
@store.find('stage')
)
Plnnr.Stage = DS.Model.extend(
tasks: DS.hasMany("task")
name: DS.attr("string")
description: DS.attr("string")
position: DS.attr("number")
)
Plnnr.ApplicationAdapter = DS.ActiveModelAdapter.extend(
namespace: 'v1'
)
API 使用 Rails Serializer 设置,设置断点表明 Adapter 正在成功检索数据。
我还在 Ember-data.js 中设置了一个断点,位于故障开始的原点(当在下面的代码中调用 .normalize 时):
var normalizedArray = map.call(payload[prop], function(hash) {
return typeSerializer.normalize(type, hash, prop);
}, this);
那时,type = DS.Model 和 hash = 序列化的 API 有效负载。
我是 Ember 新手,不熟悉如何解释文档。有谁知道可能出了什么问题,并对我如何追踪问题有任何建议?
谢谢!
【问题讨论】:
标签: ember.js ember-data