Javascript 如何在Angularjs中使用相同的web api get请求检索和追加数据

Javascript 如何在Angularjs中使用相同的web api get请求检索和追加数据,javascript,angularjs,user-interface,http-get,Javascript,Angularjs,User Interface,Http Get,在这里,我使用“$http.get”请求从Angular.js中的Web API检索数据 API URL有一个参数调用“pageNo=”,需要在该参数的末尾添加一个数字,以检索相应页码的数据,以维持繁重的请求负载,每个页面有10个记录列表 我获取了一个范围变量($scope.pageCount)并将其与URL一起传递,它工作正常,能够一次检索10个记录列表 现在,我假设在向下滚动时获取其余数据(如使用无限滚动),并将其附加到现有数据列表中 是否有可能或以任何方式从同一请求中检索更多数据? 我已经

在这里,我使用“$http.get”请求从Angular.js中的Web API检索数据

API URL有一个参数调用“pageNo=”,需要在该参数的末尾添加一个数字,以检索相应页码的数据,以维持繁重的请求负载,每个页面有10个记录列表

我获取了一个范围变量($scope.pageCount)并将其与URL一起传递,它工作正常,能够一次检索10个记录列表

现在,我假设在向下滚动时获取其余数据(如使用无限滚动),并将其附加到现有数据列表中

是否有可能或以任何方式从同一请求中检索更多数据? 我已经将“无限滚动”添加到应用程序中,并在向下滚动时收到警报

以下是当前的工作功能

app.controller('SpotLightCtrl', function ($scope, $http, shareEventID) {

    $scope.pageCount = 1;
    $http.get("https://stg.myapi.svc/pageNo="+$scope.pageCount+)
      .then(function (response) {
          $scope.data = response.data;

          $scope.loadMore = function () {
              alert('Load more records');
          };

      });

});
以及HTML代码:

<div class="content-block spotlight-listing" ng-controller="SpotLightCtrl" infinite-scroll='loadMore()' infinite-scroll-distance='1'>
    <h1>Spotlight</h1>
    <div ng-repeat="event in data.eventList" class="deals-block">
        <div class="col-md-4 col-xs-12 img-style">
            <a href="/SpotLight-Detail"><img ng-src="{{event.eventPosterImage}}" class="img-responsive img-rounded" /></a>
        </div>
    </div>
</div>

聚光灯

如果任何细节不清楚,请与我们分享,我们将非常感谢您的帮助。

您可以将http调用放入函数中,并使用pagecount调用函数

app.controller('SpotLightCtrl', function ($scope, $http, shareEventID) {

 $scope.pageCount = 1;
 $scope.data = [];
 function getData() {
    $http.get("https://stg.myapi.svc/pageNo=" + $scope.pageCount)
        .then(function (response) {
            $scope.data = $scope.data.concat(response.data);
        });
 }

 $scope.loadMore = function () {
    console.log('Loading more records');
    ++$scope.pageCount; //page count is incremented by 1, so
    getData();
 };

 getData();
});

调用loadMore函数时,pagecount将递增1,并且下一条记录将追加到$scope.data中,您可以将http调用放入函数中,并使用pagecount调用该函数

app.controller('SpotLightCtrl', function ($scope, $http, shareEventID) {

 $scope.pageCount = 1;
 $scope.data = [];
 function getData() {
    $http.get("https://stg.myapi.svc/pageNo=" + $scope.pageCount)
        .then(function (response) {
            $scope.data = $scope.data.concat(response.data);
        });
 }

 $scope.loadMore = function () {
    console.log('Loading more records');
    ++$scope.pageCount; //page count is incremented by 1, so
    getData();
 };

 getData();
});

当调用loadMore函数时,pagecount将递增1,并且下一条记录将追加到$scope。data

将您的JS复制到SO时可能出现问题,我建议您检查并修复它。哦,让我检查一下,George,是否已更新相同的记录。将您的JS复制到SO时可能出现问题,我建议你检查并修复它。哦,让我检查一下,乔治,已经更新了。谢谢。。谢谢,谢谢。。谢谢