2017-01-16 2 views
1

У меня есть функцияОбъединение двух SCOPES из отдельных источников (той же конструкции)

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 (все в точно таком же формате) в ОДНОМ $ рамки

Как объединить эти HTTP-данные с тремя разными конечными точками в URL-адресе?

EDIT: Перейдя по ссылке в первом комментарии я пришел с этим

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 с помощью консольных вошедшего рамки

enter image description here

Я обычно петля над listOfServices.trainServices

FINAL EDIT:

Получил это, правильно использовал петлю в петле, т.е.

<tbody ng-repeat="item in listOfServices"> 
     <tr ng-repeat="service in item.data.trainServices"> 

ответ

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

+0

Добро пожаловать :) –

Смежные вопросы