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