我有一个功能
var getData = function() {
$http.get('(url of remote site)/swi/20?expand=true').success(function (data) {
$scope.listOfServices = data.runningServices;
});
};
每30秒更新一次并提取服务列表。
但是,我想扩展这个也来自
$http.get('(url of remote site)/**pad**/20?expand=true')
和$
http.get('(url of remote site)/**bri**/20?expand=true')
例如然后将rusults(全部采用完全相同的格式)合并到ONE $ scope
中如何将这些HTTP获取与URL中的三个不同端点合并?
编辑:按照第一条评论中的链接,我提出了这个
var getData = function() {
var swindon = $http.get('(url)/swi/10?expand=true'),
paddington = $http.get('(url)/pad/10?expand=true'),
reading = $http.get('(url)/rdg/10?expand=true');
$q.all([swindon,paddington,reading]).then(function(arrayOfResults) {
$scope.listOfServices = arrayOfResults;
console.log($scope.listOfServices);
});
};
getData();
但现在的问题是我有一个我无法以任何方式访问的数组。我甚至在重复中做了一次重复
以下是带有记录范围的Google COnsole的屏幕截图
我通常循环遍历listOfServices.trainServices
最终编辑:
得到它,在循环中正确使用循环,即
<tbody ng-repeat="item in listOfServices">
<tr ng-repeat="service in item.data.trainServices">
答案 0 :(得分:1)
您可以嵌套通话,如下所示:
$scope.listOfServices = [];
$http.get('(url of remote site)/swi/20?expand=true')
.success(function (data, status, headers, config) {
$scope.listOfServices.concat(data.runningServices);
$http.get('(url of remote site)/pad/20?expand=true')
.success(function (data, status, headers, config) {
$scope.listOfServices.concat(data.runningServices);
//nest Another and so on...
//$http.get('(url of remote site)/bri/20?expand=true')..
});
})
.error(function (data, status, headers, config) {$scope.listOfServices = [];});
或使用已解决的承诺,如下面的答案所示:
angular -- accessing data of multiple http calls - how to resolve the promises