在 Angular 中加载下一页

Load Next Page in Angular

我有以下 Angular 和 HTML 代码:

<script type="text/javascript">

  var application = angular.module('Application', []);

  application.service('ImageService', function ($http) {
    return {
      GetList: function () {
        return $http.get('api/images');
      },
    }
  });

  application.controller('ImageController', function ImageController($scope, ImageService) {

    ImageService.GetList()
      .success(function (data, status, headers, config) {
        $scope.images = data;
      })
      .error(function (data, status, headers, config) { });
  });

</script>

<div data-ng-app="Application" data-ng-controller="ImageController" class="gallery">
  <div data-ng-repeat='image in images' class="image">
    <img src="{{image.Url}}" alt="" />
  </div>
</div>

API 调用是 return 调用以下内容:

[
  {"Key":"89207","Url":"http://somedomain.com/image89207.jpg"},
  {"Key":"12321","Url":"http://somedomain.com/image12321.jpg"},
  {"Key":"23434","Url":"http://somedomain.com/image23434.jpg"}
]

我想在用户向下滚动到页面末尾或单击显示 "Show More" 的按钮时加载下一页。

我还需要 return 我的 JSON NextPage 值 ...

要点是,如果当前页面是“233”,那么下一页可能是“4545”。

我认为 API 可能需要 return 下一页值和图像列表。

我该怎么做?

我同意 pankajparkar。你应该处理 'show more' 按钮,加载更多图像并用 $scope.images 加入它。 ng-repeat 将完成剩余的工作。这是代码示例

  <script type="text/javascript">
    var application = angular.module('Application', []);

    application.service('ImageService', function($http) {
      return {
        GetList: function(page) {
          return $http.get('api/images', {
            params: {
              page: page
            }
          });
        },
      }
    });

    application.controller('ImageController', function ImageController($scope, ImageService) {

      var page = 0;

      $scope.images = [];

      var load = function() {
        ImageService.GetList(page)
          .success(function(data, status, headers, config) {
            $scope.images = $scope.images.concat(data);
          })
          .error(function(data, status, headers, config) {});
      };

      load();

      $scope.loadMore = function() {
        page++;
        load();
      }
    });
  </script>

  <div data-ng-app="Application" data-ng-controller="ImageController" class="gallery">
    <div data-ng-repeat='image in images' class="image">
      <img src="{{image.Url}}" alt="" />
    </div>
    <div>
      <button ng-click="loadMore()">load more</button>
    </div>
  </div>