【问题标题】:Iterating inside $http.get在 $http.get 内部迭代
【发布时间】:2017-04-04 20:13:16
【问题描述】:

我有这段代码,每个请求显示 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 个获取请求,如何在 $http.get 中进行迭代?我想在显示第一个 20 后显示第二个 20 项。

【问题讨论】:

标签: angularjs http


【解决方案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); 
    }
})

【讨论】:

    猜你喜欢
    • 2017-08-25
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 2019-11-26
    • 2017-12-17
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多