我可以在服务中使用jsonapi吗?使用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上没有错误。
//components/image-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}}
//templates/index.hbs
{{image-list model=model currentPos=currentPos }}
{{outlet}}
//routes/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;
}
});
}
});
// routes/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');
}
});
你为什么要这么做?为什么不使用'ember-data',其中'store' *是一项服务。如果你不使用'ember-data',你将不得不手动分析和处理JSONAPI响应。 – Lux
我试过了。我做不到。那么现在我正在尝试服务的东西。但是,如果你可以帮助这是当我试图与商店:https://ember-twiddle.com/fe9009abc8ecec2b4b48c91c64c8ff77?openFiles=twiddle.json%2Ctemplates.components.image-list.hbs你看不到数据这里请原谅我的API不是https:/尽管如此,但您可以先检查代码 – hbc
,不要调用'Ember。$。getJSON',而是覆盖'urlForFindAll'。检出[API](http://emberjs.com/api/data/classes/DS.JSONAPIAdapter.html#method_urlForFindAll)和代码。接下来,如果你使用了ember数据,你为什么会在routes model hook中再次调用'Ember。$。getJSON' * *?询问你的商店:'this.store.findAll('news-list')'。接下来你的API不兼容* JSONAPI。所以不要使用'JSONAPIAdapter'和'JSONAPISerializer'。 – Lux