forEach AngularJS中的$ resource函数参数

时间:2013-06-23 20:14:01

标签: javascript angularjs

在此功能中,我将从相册列表中检索每个相册:

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

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

resource documentation(向下滚动到“返回”部分),看起来您只需将参数传递给get即可替换网址中的值。

var promise = call.get({album: album.id})