在此功能中,我将从相册列表中检索每个相册:
options.albumsList.forEach(function (id) {
var promise = $resource('https://api.imgur.com/3/album/:album',{album:id},{
get:{
headers:{'Authorization':'Client-ID '+ options.apiKey},
method:'GET'
}
}).get().$then(
function(value){
albums.push(value);
},
function(err){
console.log(err);
}
);
prom.push(promise);
});
$q.all(prom).then(function () {
console.log(albums);
});
您会注意到:album
取决于id
albumList
这意味着我想将资源调用分配给可重用的对象,如:
var call = $resource('https://api.imgur.com/3/album/:album',{album:id},{
get:{
headers:{'Authorization':'Client-ID '+ options.apiKey},
method:'GET'
}
});
然后将其包裹起来:
options.albumsList.forEach(function (album) {
//Can no longer pass album id to each call
var promise = call.get().$then(
function(value){
albums.push(value);
},
function(err){
console.log(err);
}
);
prom.push(promise);
});
$q.all(prom).then(function () {
console.log(albums);
});
我无法再将相册ID传递给每个:album
有解决方法吗?
答案 0 :(得分:1)
从resource documentation(向下滚动到“返回”部分),看起来您只需将参数传递给get
即可替换网址中的值。
var promise = call.get({album: album.id})