使用 $resource 的 AngujarJS 服务器端分页总计项目

Posted

技术标签:

【中文标题】使用 $resource 的 AngujarJS 服务器端分页总计项目【英文标题】:AngujarJS server-side pagination grand total items using $resource 【发布时间】: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的目的 how to make a server side pagination with angularjs $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,例如分页结果数组。

以上是关于使用 $resource 的 AngujarJS 服务器端分页总计项目的主要内容,如果未能解决你的问题,请参考以下文章

使用Resources类搭建Unity简单的资源管理工具类

python:运行时使用 pkg_resources 的多个库版本(pkg_resources.VersionConflict 错误)

使用 Angular $resource 上传文件

Vue.js:vue-resource 使用路径参数调用 resource.save()

AngularJS:使用 $resource 上传文件(解决方案)

SpringBoot常用注解:@Resource/@Component与@Autowired的使用