使用angularjs消费Restful API时如何获得多个$ http

时间:2017-05-16 07:13:09

标签: angularjs rest

我尝试从JSONPlaceholder数据中显示,我需要多个$http.get,这是我的代码。问题是,从第二次调用我没有得到任何数据

  MyAlbum1.controller('albumList', function($scope, $http) {
    $http.get('http://jsonplaceholder.typicode.com/albums').
        then(function(response) {
            $scope.albumDetails = response.data;
        });

    $http.get('http://jsonplaceholder.typicode.com/users').
        then(function(response) {
            $scope.albumUsers = response.data;
       });
});

如果我尝试在部分视图albumUsers.name中显示,则不会显示。只有我先放$http.get('http://jsonplaceholder.typicode.com/users').,但它不会显示albumDetails.id

那么如何获得多个http.get

由于

3 个答案:

答案 0 :(得分:1)

你可以一个接一个地加载:

MyAlbum1.controller('albumList', function($scope, $http) {

     $http.get('http://jsonplaceholder.typicode.com/albums').
     then(function(response) {
        $scope.albumDetails = response.data;


        $http.get('http://jsonplaceholder.typicode.com/users').
        then(function(response) {
                $scope.albumUsers = response.data;
        });
    });
});

  MyAlbum1.controller('albumList', function($scope, $http, $q) {
       $q.all([$http.get('http://jsonplaceholder.typicode.com/albums'), $http.get('http://jsonplaceholder.typicode.com/users')]).then(function(response) { 
       });
  });

答案 1 :(得分:0)

使用map_async一次发送多个请求。首先将apply_async注入控制器。

$q

答案 2 :(得分:0)

谢谢!在工作,在忙。这是我正在使用的代码:

MyAlbum.controller('albumList', function($scope, $http, $q) {
$http.get('http://jsonplaceholder.typicode.com/albums').
    then(function(response) {
        $scope.albumDetails = response.data;
    });

$http.get('http://jsonplaceholder.typicode.com/users').
    then(function(response) {
        $scope.albumUsers = response.data;
   });

$q.all(['http://jsonplaceholder.typicode.com/albums','http://jsonplaceholder.typicode.com/users',]).
    then(function(response){
        $scope.albumDetails = response[0].data;
        $scope.albumUsers= response[1].data;
});  

});

但是,在调用数据时,我需要执行以下操作:

User: {{albumUsers[1].name}}

喜欢,我需要[1]以便它能够正常工作。 感谢