2 つのカテゴリ (ニュースとイベント) から 2 つのブログ投稿の 2 つのリストを取得し、それらをホームページの 2 つの異なる列に表示しようとしています。これらのブログ投稿を取得するには、2 つの別々の Ajax 呼び出しを実行する必要があります。このシナリオでは ember-data を使用する利点が見当たらないため、この操作には ember-data を使用しません (ただし、間違っている可能性があります)。
export default Ember.Route.extend({
setupController(controller, model) {
var wpUrl = 'http://public-api.wordpress.com/rest/v1/sites/company.wordpress.com/posts/?number=2&category=';
Ember.$.ajax({ url: wpUrl + 'news', dataType: "jsonp", type: 'GET' }).then(function (data) {
controller.set('news', data.posts);
});
Ember.$.ajax({ url: wpUrl + 'events', dataType: "jsonp", type: 'GET' }).then(function (data) {
controller.set('events', data.posts);
});
}
});
上記のコードは機能します。しかし、Ember のドキュメントで読んだことから、promise を利用するには、これらのデータをmodel
( ではなく) フックで取得する必要がありsetupController
ます。だから私は自分のコードをこのように書き直そうとしました:
export default Ember.Route.extend({
model() {
var wpUrl = 'http://public-api.wordpress.com/rest/v1/sites/company.wordpress.com/posts/?number=2&category=';
return {
news: function () {
return Ember.$.ajax({ url: wpUrl + 'news', dataType: "jsonp", type: 'GET' }).then(function (data) {
return data.posts;
})
},
events: function () {
return Ember.$.ajax({ url: wpUrl + 'events', dataType: "jsonp", type: 'GET' }).then(function (data) {
return data.posts;
})
}
};
}
});
しかし、これはうまくいきません。Ajax 呼び出しは完了しましたが、ページがレンダリングされた後では遅すぎます。ここで何が間違っているのかわかりません。そのシナリオで ember-data を使用する利点はありますか?