使用 Angular JS 的自定义分页 - 需要在第一页显示 div 元素,这应该在第二页上重复单击下一步

Posted

技术标签:

【中文标题】使用 Angular JS 的自定义分页 - 需要在第一页显示 div 元素,这应该在第二页上重复单击下一步【英文标题】:Custom Pagination using Angular JS- Need to display div elements in first page which should get repeated on 2nd page clicked Next 【发布时间】:2016-01-19 14:48:12 【问题描述】:

    我有一个分页窗格。我有一个大小为 42 的数组。第一页显示 24 个 div 元素,第二页显示剩余的 18 个元素。

    我的问题是如何在第 1 页中显示元素 1 到 24,在第二页中显示元素 19 到 42 - 这意味着我需要在这两个页面中重叠元素。

实现的html代码如下:

    <div class = "addPage" ng-repeat="item in selectedItems.itemsArr| startFrom:currentPage*pageSize | limitTo:pageSize"> Item$index+1
    </div> 

对于上述: 页面大小=24, currentPage=0(点击Next时变为1)

做同样的事情的JS代码如下(跟随这个小提琴:http://jsfiddle.net/2ZzZB/56/):

       .filter('startFrom', function() 
            return function(input, start) 
                if (!input || !input.length)  return; 
                else            
                        start = +start; //parse to int
                        return input.slice(start);
                    
             
        );

【问题讨论】:

【参考方案1】:

使用startFrom: 过滤器中的函数,您可以控制数据集中最后一页的显示。这使您的结果显示大小保持一致,并为您提供所需数据的重叠。

更新小提琴:http://jsfiddle.net/zr9nd0rx/1/

<li ng-repeat="item in data | startFrom: startFromCalculator()| limitTo:pageSize">


$scope.startFromCalculator = function() 
   if ($scope.currentPage + 1 == Math.ceil($scope.data.length/$scope.pageSize)) 
       return $scope.data.length - $scope.pageSize;
    else         
       return $scope.currentPage*$scope.pageSize;
   

【讨论】:

以上是关于使用 Angular JS 的自定义分页 - 需要在第一页显示 div 元素,这应该在第二页上重复单击下一步的主要内容,如果未能解决你的问题,请参考以下文章

ArcGIS-JS-API - 弹出模板中的自定义内容不显示任何内容(Angular 11)

基于angular的分页组件插件,使用directive,将directive的内容放到js文件中,直接引用即可

Laravel 4 和 Angular JS 和 Twitter Bootstrap 3 分页

angular.js分页代码的实例

Angular DataTable - 自定义分页和信息

ASP.Net MVC Kendo Grid 的自定义分页