How to do paging in AngularJS?

后端 未结 21 2205
轮回少年
轮回少年 2020-11-22 07:17

I have a dataset of about 1000 items in-memory and am attempting to create a pager for this dataset, but I\'m not sure on how to do this.

I\'m using a custom filter

21条回答
  •  悲哀的现实
    2020-11-22 08:04

    Previous messages recommended basically how to build a paging by yourself. If you are like me, and prefer a finished directive, I just found a great one called ngTable. It supports sorting, filtering and pagination.

    It is a very clean solution, all you need in your view:

       
    {{user.name}} {{user.age}}

    And in controller:

    $scope.tableParams = new ngTableParams({
        page: 1,            // show first page
        count: 10,          // count per page
        sorting: {
            name: 'asc'     // initial sorting
        }
    }, {
        total: data.length, // length of data
        getData: function($defer, params) {
            // use build-in angular filter
            var orderedData = params.sorting() ?
                                $filter('orderBy')(data, params.orderBy()) :
                                data;
    
            var start = (params.page() - 1) * params.count();
            var end = params.page() * params.count();
    
            $defer.resolve(orderedData.slice( start, end));
        }
    });
    

    Link to GitHub: https://github.com/esvit/ng-table/

提交回复
热议问题