Ember数据未填充模型
Ember data not populating model
我正试图从我的Rails API中获取一些数据并将其显示在模板中。我对ember很陌生,所以解释越简单越好,如果这是一个非常愚蠢的问题,请原谅我。
问题似乎是api数据没有正确到达模型,当我有静态fixture数据但没有服务器数据时,它可以工作。对服务器的Get请求正在进行中,我得到了很好的响应,所以json移动到模型的方式肯定有问题。
我在routes/external/jobs.js
中的路线
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll('job');
}
});
我在models/job.js
的工作模式
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
id: DS.attr('string')
});
我希望我的API以的形式返回数据
{
"jobs": [
{
id: "jfdsa132113",
title: "developer",
type: "Job",
body: "lorem ipsum",
published_at: date,
tags: [
"some stuff",
"more stuff"
]
},
{
id: "fdsafd3432",
title: "designer",
type: "Job",
body: "lorem ipsum",
published_at: date,
tags: [
"some stuff",
"more stuff"
]
}
]
}
我的路由器
Router.map(function () {
//index route
this.route('external', function () {
this.route('jobs');
this.route('support');
});
export default Router;
我认为您对DS.Model
s有误解,您应该看看指南,特别是http://guides.emberjs.com/v2.1.0/models/finding-records/.
假设路由和模板设置正确,并且ApplicationAdapter
正在扩展RESTAdapter
/ActiveModel Adapter
(请参阅此处的预期JSON格式),我认为问题出在models/jobs.js
中,这是不必要的。
EmberData应该在执行store.findAll('job')
时向/jobs
发出正确的请求。尝试删除models/jobs.js
和adapters/jobs.js
,然后执行以下操作:
// routes/external/jobs.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll('job');
}
});
如果这没有帮助,也可以尝试张贴你的路由器和任何错误。
假设您的模型从API加载良好,我认为问题就在您的模板中。
根据文档,您需要显式地访问每个模型的属性。http://guides.emberjs.com/v2.1.0/templates/displaying-a-list-of-items/
因此,与其使用{{title}}
,不如使用{{job.title}}
。
{{#each model as |job|}}
<a href={{job.title}}>
<div class="info">
<div class="title">{{job.body}}</div>
</div>
</a>
{{/each}}
这修复了
添加文件serializers/job.js
带有线路
import DS from 'ember-data';
export default DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
});
我没有构建api,我注意到一些id被强调了约定。更多信息可以在这里阅读http://ember-doc.com/classes/DS.ActiveModelSerializer.html
- spine.js在启动时填充模型实例
- 输入文本的ng重复没有填充指令中的ng模型
- 根据服务器的初始标记填充knockoutJS视图模型对象
- 从 JavaScript 填充挖空视图模型
- 主干模型未填充
- 如何从 html 表数据填充 javascript 模型
- 骨干 js 并使用 fetch() 用数据填充模型
- AngularJS模型在javascript中填充,但在页面上为空
- 角度填充 ng 重复和 ng 模型
- 使用从模型传递的数据填充 HTML5 日期选取器
- 如何获取猫鼬模型中已填充儿童的数量
- AngularJS:如果ng模型被另一个模型填充,如何让它受到影响
- 如何为主干模型填充 id
- 将模型绑定到服务器最初填充的HTML表
- 在另一个模型中引用/填充猫鼬模型时出现问题
- SpringMVC如何从表单子模块上的JS数组填充部分模型
- 主干持久性从服务器检索数据;t填充集合和模型
- 用ng重复或ng模型填充一个文本区域,这样它就不会用迭代的数据一个接一个地创建新的文本区域
- 用模型信息填充JSTree中的AJAX url
- 以程序方式设置时,未在视图模型中填充选中状态