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;
});