【问题标题】:AngujarJS server-side pagination grand total items using $resource使用 $resource 的 AngujarJS 服务器端分页总计项目
【发布时间】:2013-10-02 14:56:06
【问题描述】:

我正在尝试在 AngujarJS 应用程序上实现服务器端分页,但还没有弄清楚如何在给定 JSON 响应中获取总计(而不是每个请求的总计)项目而无需执行额外请求:

$scope.books = [];
$scope.limit = 3;
$scope.offset = 0;

$scope.search = function () {
    Books.query({ q: $scope.query, limit: $scope.limit, offset: $scope.offset },
        function (response) {
            $scope.books = response;
        }
    );
};

$scope.previous = function () {
    if ($scope.offset >= $scope.limit) {
        $scope.offset = $scope.offset - $scope.limit;
        $scope.search();
    }
}

$scope.next = function () {
    if ($scope.offset <= $scope.limit) {
        $scope.offset = $scope.offset + $scope.limit;
        $scope.search();
    }
}

我一直在寻找伟大的贡献指令,例如 ng-tableng-grid,它们已经实现了这个以及其他有用的功能,但我只是希望能够从头开始实现这个功能以真正学习基础知识.

【问题讨论】:

  • 将每个请求返回的响应中的项目总数相加。
  • @ranru:谢谢,但我相信应该有更好的方法,而不是修改对象集合本身。
  • 如果 JSON 响应包含所有项目,那么您应该能够从长度属性中获取。但是,如果每个它只包含结果的一个子集,我认为除了从服务器获取值之外别无他法。
  • 这是一个子集——这就是$scope.limit的目的

标签: angularjs pagination angular-resource


【解决方案1】:

听起来您在使用 api 的过程中遇到的不仅仅是角度问题。

有关 api 的建议,请参阅下面的答案。

What’s the best RESTful method to return total number of items in an object?

【讨论】:

  • Django Rest Framework 提供了一个很好的分页结果对象,它提供了total,以及nextprevious URL,例如分页结果数组。
猜你喜欢
  • 2013-10-09
  • 1970-01-01
  • 2010-10-31
  • 1970-01-01
  • 2016-05-04
  • 2020-05-01
  • 2018-03-13
  • 2015-09-24
相关资源
最近更新 更多