ajax可以写两个路由吗,Ember.js:单个路由中的多个Ajax调用

本文探讨了一位开发者在不使用ember-data的情况下,通过Ajax从两个类别(新闻和事件)获取博客帖子并分别显示在主页上的过程。尽管原始代码能够正常工作,但作者尝试将Ajax调用移到`model`钩子中以更好地遵循Ember最佳实践,却发现数据加载过晚。文章讨论了在理解Ember路由生命周期中遇到的问题,并提出了对于是否应使用ember-data的疑问。
摘要由CSDN通过智能技术生成

我正在尝试从两个类别(新闻和事件)获得两个博客帖子列表,然后将它们显示在我的主页的两个不同的列中.我需要执行2个单独的Ajax调用才能获得这些博文.我不使用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',type: 'GET' }).then(function (data) {

controller.set('events',data.posts);

});

}

});

上面的代码工作.但是从我在Ember docuMetation中读到的内容,我应该在模型钩子(而不是setupController)中获取这些数据来利用promise.所以我试图用这种方式重写我的代码:

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',type: 'GET' }).then(function (data) {

return data.posts;

})

},events: function () {

return Ember.$.ajax({ url: wpUrl + 'events',type: 'GET' }).then(function (data) {

return data.posts;

})

}

};

}

});

但这不行. Ajax调用已经完成,但是在页面呈现之后太晚了.我不知道我在做错什么在这种情况下是否有使用ember数据的优点?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值