【发布时间】:2013-12-12 12:37:41
【问题描述】:
我有一条路线,如下所示,它从多个休息调用中构建数据。
App.IndexRoute = Ember.Route.extend({
model: function() {
var id = 1; //will get as url param later
var modelData = {ab:{},ef:{}};
return ajaxPromise('https://url1/'+ id +'?order=desc').then(function(data){
modelData.ab = data.items[0];
return ajaxPromise('https://url2/'+ id +'/?order=desc').then(function(data){
modelData.ab.x = data.items;
return modelData;
})
});
}
});
我的ajaxPromise函数如下:
var ajaxPromise = function(url, options){
return Ember.RSVP.Promise(function(resolve, reject) {
var options = options || {
dataType: 'jsonp',
jsonp: 'jsonp'
};
options.success = function(data){
resolve(data);
};
options.error = function(jqXHR, status, error){
reject(arguments);
};
Ember.$.ajax(url, options);
});
};
现在的问题是我知道我可以将 RSVP.all 与 promise 实例一起使用,但是从这些 url 返回的数据必须设置为像上面这样的模型对象。
此外,可能还有更多的休息呼叫需要来自其他休息呼叫的数据。有没有其他方法可以处理这个承诺。
PS:单条路线马上需要数据
【问题讨论】: