【发布时间】:2015-07-15 06:42:14
【问题描述】:
我正在通过使用 Ember-CLI 并使用 DJango (DJango Rest Framework) 为小型应用程序提供动力来学习 EmberJS。
我正在尝试从我的 API 中显示一个简单的“花园”列表,但模板没有显示除“id”以外的任何内容:
我的路由器:
routes/gardens.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.findAll('garden');
}
});
我的模特:
models/garden.js
import DS from 'ember-data';
export default DS.Model.extend({
});
我的模板:
模板/gardens.hbs
<h2>Gardens</h2>
<ul>
{{#each garden in model}}
<li>
{{garden.name}}
{{garden.id}}
{{garden.owner}}
</li>
{{else}}
Nothing here!
{{/each}}
</ul>
我最终看到的只是对象的“id”,其他都是空白的:
到目前为止,我发现 Garden API 响应实际上来自我的 Django API,正如 Chrome 开发人员控制台中所示:
我之前用ember-django-adapter 修复了一个根元素问题,我不再看到与此相关的错误。我的下一个预感是这个适配器导致了另一个问题,也许 DRFSerializer 在稍后的某个其他步骤中丢失了有效负载。
我的数据去哪儿了?
更新
对数据进行硬编码就可以了。我非常确定我在序列化过程中遗漏了一些东西:
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return [
{
id : 0,
name: "Foo",
owner: "Bar"
}
]
}
});
模板适用于硬编码模型:
更新 2
似乎我找到了数据的去向,我只是不确定它为什么会发生,某种标准化,但整个有效负载都被忽略了。只保留身份证。
在 ember-data/lib/system/store/serializer-response.js 中,_normalizeSerializerPayload 正在将负载转换为 Json API 文档。
【问题讨论】:
标签: javascript python django ember.js