我对此一直疯了,我认为答案可能在那里,但我不知道向Google问这个问题的正确方法。

本质上,我需要一种方法来进行$ resource调用,并传递一些我想在成功函数中使用的数据。

app.controller('VariantListController', ['djResource', function(djResource){
    var Variants = djResource('/ship-builder/variants/?format=json');
    var Vehicle = djResource('/ship-builder/vehicles/:id', {id: '@id'});
    this.variants = Variants.query(function(variants){
        $(variants).each(function(){
            console.log(this);
            variantData = this;
            var vehicleData = Vehicle.get({id:this.baseVehicle}, function(){
                console.log(variantData);
            })
        })
    });

}]);


在上面的示例中,在最里面的成功函数中,“ variantData”始终是前一级的LAST条目的值。这很有意义,因为该值是在成功发生之前很久就由数组中的最后一项设置的。我需要一种方法来获取调用Vehicle.get()时不存在的'variantData'的值。

那有意义吗?我觉得很难解释这个问题。

最佳答案

您需要创建一个闭合使其起作用。就像是

this.variants = Variants.query(function(variants){
        $(variants).each(function(){
            getVehicleData(this);
        })
    });

function getVehicalData(variantData) {
   var vehicleData = Vehicle.get({id:variantData.vehicleId}, function(){
                console.log(variantData);
            })
}

关于javascript - 将var传递给angular $ resource成功函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24028461/

10-16 00:13