【发布时间】: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-table 和 ng-grid,它们已经实现了这个以及其他有用的功能,但我只是希望能够从头开始实现这个功能以真正学习基础知识.
【问题讨论】:
-
将每个请求返回的响应中的项目总数相加。
-
@ranru:谢谢,但我相信应该有更好的方法,而不是修改对象集合本身。
-
如果 JSON 响应包含所有项目,那么您应该能够从长度属性中获取。但是,如果每个它只包含结果的一个子集,我认为除了从服务器获取值之外别无他法。
-
这是一个子集——这就是
$scope.limit的目的
标签: angularjs pagination angular-resource