[英]Ember data not populating model
我正在嘗試從Rails API中獲取一些數據並將其顯示在模板中。 我是個新手,如果這是一個非常愚蠢的問題,那么解釋越簡單越好,請原諒我。
問題似乎是api數據無法正確到達模型,當我具有靜態固定裝置數據但不適用於服務器數據時,它可以工作。 對服務器的Get請求正在處理中,我得到了很好的響應,因此json如何移動到模型中一定有問題。
我在routes/external/jobs.js
中的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
有誤解,應該看看這些指南,特別是http://guides.emberjs.com/v2.1.0/models/finding-records/ 。
假設正確設置了路由和模板,並且ApplicationAdapter
擴展了RESTAdapter
/ ActiveModel Adapter
(請參閱此處的 JSON格式),我相信問題出在models/jobs.js
,這是不必要的。
當您執行store.findAll('job')
時,Ember Data應該向/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/
因此,請使用{{job.title}}
而不是{{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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.