サービスで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');
}
});
私は試していますが、ページ内に何も表示されません。 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');
}
});
は、なぜあなたはこれをしたいですか?なぜ 'store' *サービスである' ember-data'を使わないのでしょうか。 '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データを使用する場合、なぜルートモデルフックで 'Ember。$。getJSON' *をもう一度呼び出すのでしょうか?あなたの店にそれを求める: 'this.store.findAll( 'news-list')'。次に、APIは* JSONAPI互換ではありません。したがって、 'JSONAPIAdapter'と' JSONAPISerializer'を使用しないでください。 – Lux