Javascript AngularJs将参数传递到

Javascript AngularJs将参数传递到,javascript,angularjs,Javascript,Angularjs,我有一个脚本,它获取一个项目列表,然后为每个项目获取数据,然后需要将定义和数据合并到一个对象中 代码中的部分: 我想将itemObject传递到DashboardFactory.Convert函数 可能吗?还是有更好的办法 由于承诺机制,当前它具有items数组中最后一项的值 var items = BaseFunctionsService.GetData(result); console.log('success', items); if (items) { var itemdata

我有一个脚本,它获取一个项目列表,然后为每个项目获取数据,然后需要将定义和数据合并到一个对象中

代码中的部分: 我想将
itemObject
传递到
DashboardFactory.Convert
函数

可能吗?还是有更好的办法

由于承诺机制,当前它具有items数组中最后一项的值

var items = BaseFunctionsService.GetData(result);
console.log('success', items);
if (items)
{
    var itemdata = null;
    var chartData = null;
    var itemData = null;
    var itemObject = null;

    for (var i = 0; i < items.length; i++) {
        itemObject = items[i];
        itemData = DashboardFactory.GetData(items[i]);

        itemData.then(function (result) {
            console.log('itemdata result', result);
            itemdata = BaseFunctionsService.GetData(result);
            chartData = DashboardFactory.Convert(itemObject, itemdata, result.data.Translations[result.data.LangKey]);
            console.log('itemdata success', chartData);
            $scope.data.push(chartData);
        }, function (error) {
            console.log('itemdata error', error);
        });
    }
    console.log('data output', $scope.data);
}
var items=BaseFunctionsService.GetData(结果);
console.log('success',项);
若有(项目)
{
var itemdata=null;
var chartData=null;
var itemData=null;
var itemObject=null;
对于(变量i=0;i
您需要在for循环中使用IIEF来保持对
itemObject
的正确引用当
itemData
承诺得到解决时,这是for循环中闭包的常见错误

var items = BaseFunctionsService.GetData(result);
console.log('success', items);
if (items)
{
    var itemdata = null;
    var chartData = null;
    var itemData = null;
    var itemObject = null;

    for (var i = 0; i < items.length; i++) (function (i) {
        itemObject = items[i];
        itemData = DashboardFactory.GetData(items[i]);

        itemData.then(function (result) {
            console.log('itemdata result', result);
            itemdata = BaseFunctionsService.GetData(result);
            chartData = DashboardFactory.Convert(itemObject, itemdata, result.data.Translations[result.data.LangKey]);
            console.log('itemdata success', chartData);
            $scope.data.push(chartData);
        }, function (error) {
            console.log('itemdata error', error);
        });
    })(i);
    console.log('data output', $scope.data);
}
var items=BaseFunctionsService.GetData(结果);
console.log('success',项);
若有(项目)
{
var itemdata=null;
var chartData=null;
var itemData=null;
var itemObject=null;
对于(var i=0;i
您可以执行
DasboardFactory.Convert.call(itemObject,/*其余参数*/)
或者您可以使用
仪表板工厂.Convert.bind(itemObject)
,这将使该函数中的
引用引用
itemObject