javascript - 将 var 传递给 angular $resource 成功函数

标签 javascript angularjs angularjs-resource

我一直为此发疯,我认为答案可能就在那里,但我不知道向谷歌提问的正确方式。

本质上,我需要一种方法来调用 $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”始终是上一层的最后一个条目的值。这是有道理的,因为该值是在成功发生之前很久由数组中的最后一项设置的。我需要一种方法来获得调用 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/

相关文章:

javascript - 为什么在将 Paho MQTT 函数从 Angular 1 迁移到 Angular 2 时收到 typescript 错误?

javascript - 带有额外 li 的 Vue.js v-for 不呈现

javascript - 使用 DOM 的 Angular Controller 中的测试函数

javascript - Callback() Node Js

javascript - AngularJS:自动链接 $resource 操作

asp.net-mvc - Angular JS Put 方法与 ASP.NET MVC

javascript - 使用 Javascript 合并 2 组对象 + 数组

javascript - ionic 模态的 Angular 传递输入

javascript - Angularjs:在 $routeProvider 中使用 'resolve' 时如何显示加载图标?

javascript - 针对资源的 AngularJS 自定义验证