我可以在服务中使用类似的jsonapi吗?
//services/pics.js
import Ember from 'ember';
export default Ember.Service.extend({
findAll: function(){
return Ember.$.getJSON('http://api.donanimhaber.com/api/v1/site/NewsSite?pageIndex=0&pageSize=15');
}
});
我正在尝试,但我在页面中看不到任何内容。并且chrome DevTools没有错误。
//部件/图像list.hbs
{{#each model as |pic|}}
<div>{{#link-to "pic" pic}}
<p class="info">{{pic.Title}}</p><br/>
<img src={{pic.Image}} width="300">
{{/link-to}}</div>
{{/each}}
{{yield}}
//模板/ index.hbs
{{image-list model=model currentPos=currentPos }}
{{outlet}}
//路由/ pic.js
import Ember from 'ember';
import DS from 'ember-data';
export default Ember.Route.extend({
activate: function() {
this._super(...arguments);
window.scrollTo(0,0);
},
pics: Ember.inject.service(),
model(params) {
console.info(params, "Params");
return this.get('pics').get('pics').find(function(item){
if(Ember.isEqual(params.NewsUrl,item.NewsUrl)){
return true;
}
else {
return false;
}
});
}
});
//路由/ index.js
import Ember from 'ember';
export default Ember.Route.extend({
pics: Ember.inject.service(),
model() {
console.log(this.get('pics').get('pics'));
return this.get('pics').get('pics');
}
});
答案 0 :(得分:0)
理论上你可以,但我认为你应该从你的路线的模型钩子返回你的getJSON调用结果。
如果您的目标是重用不同路径中的数据,那么您应该定义pic模型并配置匹配的JSONAPIAdapter以指向您的API。然后,您将能够在模型钩子中调用this.store.findAll('pic')来从API中获取所有图像。
查看有关模型定义的指南:https://guides.emberjs.com/v2.6.0/models/
以及如何自定义适配器:https://guides.emberjs.com/v2.6.0/models/customizing-adapters/