简体   繁体   English

如何使用使用skip参数的angular-ui引导程序进行服务器端分页?

[英]How to do the server side pagination using angular-ui bootstrap using skip parameter?

i have a number of items generated using ng-repeat, i have to add pagination.but everywhere i can see by getting the count value of items, i can add. 我有许多使用ng-repeat生成的项目,我必须添加分页。但是通过获取项目计数值可以看到的任何地方,我都可以添加。 but i am not able to get using skip. 但我无法使用跳过。 ie if the skip value is 10, it will skip the first items and list the other items,i need to do like using the skip value using angular-ui bootstrap. 也就是说,如果跳过值是10,它将跳过第一项并列出其他项,我需要像使用angular-ui引导程序使用跳过值一样。
following code inside services 服务内部的以下代码

mainEvents: function() {
        var self = this;
        var skipNumber=2;
        return $http.get(UrlService.baseUrl + '/event/upcoming?count='+ skipNumber).then(function(response) {
            // var events = response.data;
            var events = response.data.events;
            var upEvents=[];

            var eventsLen = events.length;
            for (var i = 0; i < eventsLen; i++) {
                self.prepareForRendering(events[i]);
            }
            var totalItems = response.data.events.length;

            angular.copy(response.data.events, upEvents)
             console.log(upEvents);
            // angular.copy(response.data.tracks, $scope.tracks)
            return events;

        }, function(response) {
            return $q.reject(response.data.error)
        });
    },
$scope.pageChanged = function() {
    mainEvents();
  };

markup 标记

<ul>
  <li ng-repeat="event in events">{{event.name}}</li>
</ul>

<pagination total-items="totalItems" ng-model="skipNumber" ng-change="pageChanged()" items-per-page="1"></pagination>

Based on page number clicked,skipNumber to be incremented by 10, 20 etc.., How to do it.can anyone please help me 基于单击的页码,跳过编号要增加10、20等。,如何操作。任何人都可以帮助我

Working fiddle . 工作提琴

The events variable is an array, so you can use slice method with it: ng-repeat="event in events.slice( (currentPage - 1) * itemsPerPage, currentPage * itemsPerPage )" . events变量是一个数组,因此可以使用slice方法: ng-repeat="event in events.slice( (currentPage - 1) * itemsPerPage, currentPage * itemsPerPage )"

You have set itemsPerPage as 1 here: items-per-page="1" and currentPage is ($scope.skipNumber / $scope.itemsPerPage) + 1 (the devision result here must be an integer). 您已在此处将itemsPerPage设置为1items-per-page="1"currentPage($scope.skipNumber / $scope.itemsPerPage) + 1 (此处的划分结果必须是整数)。

The resulting html would look like: 产生的html看起来像:

<ul>
  <li ng-repeat="event in events.slice( (currentPage - 1) * itemsPerPage, currentPage * itemsPerPage)">{{event.name}}</li>
</ul>

<pagination total-items="totalItems" ng-model="currentPage" items-per-page="itemsPerPage"></pagination>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM