在$ http.get里面迭代

时间:2017-04-04 20:13:17

标签: angularjs http

我这个代码块每个请求显示20个项目。

.controller('MovieController',function ($scope,$http) {

    $scope.movies = $http.get(https://api.themoviedb.org/3/movie/popular&page=1)
        .then(
            function (response) {
                $scope.movies = response.data.results;

            }

       );
})

而不是page = 1,如果我把page = 2,我将得到另一组20个项目,依此类推。如果我想在一个页面中获得超过1个get请求,如何在$ http.get内迭代?我希望在显示第一个20后显示第二个20项。

1 个答案:

答案 0 :(得分:1)

将回调函数链接在一起以实现所需结果的经典方法。或者有更好的方法,它使用$ q.all()。你应该使用$ q.all一次发送多个http请求

var reqAr = [];
for (var i = 0; i <= 1; i++) {
    reqAr.push($http.get("https://api.themoviedb.org/3/movie/popular&page=" + i))
}
$q.all(reqAr).then(function(response) {
    console.log(response[0].data) //page 1 content
    console.log(response[1].data) //page 2 content
    for(var j = 0; j < response.length; j++) {
       $scope.movies = $scope.movies.concat(response[j].data.results); 
    }
})