angularjs的请求是异步的,而我项目的需求需要将多个请求的结果进行匹配后才展示到页面。通过网上查找通过如下方法很好的解决了问题。
$q.all方法
$q.all({first: $http.get(hpTasksUrlParam),second: $http.get(hpTasksUrlParamV2)}).then(function(arr){
$scope.headitems = new Array();
$scope.headitems.unshift({
data_id: "",
data_name: "总数",
uploads: arr.first.data.reduce(function (acc, curr) {
return acc + curr.uploads;
}, 0)
});
angular.forEach(arr.first, function (value) {
var total;
angular.forEach(arr.second, function (val) {
if (value.data_id == val.data_id) {
total = value.uploads + value.remain;
value.uploads += val.uploads;
value.remain = total - value.uploads;
value.proceed += val.proceed;
value.cancelled += val.cancelled;
value.release += val.release;
}
});
});
$scope.items = arr.first.data;
});