【问题标题】:pagination with ng-table in angular使用 ng-table 以角度进行分页
【发布时间】:2016-03-02 22:16:21
【问题描述】:

我正在使用ng-table 插件对这样的表格进行分页:

$scope.ngtableParams = new ngTableParams({}, {
                counts:false,
                getData: function(params) {
                    return $http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id).then(function(data) {
                        params.total(data.data.length);
                        return data.data;
                    });
                }
            });

有趣的是,每次用户点击页码时,ng-table 都会调用 getData() 函数。并再次点击整个事物并获取所有记录并显示它们。所以分页本质上是没有用的。

我需要有一个客户端分页。 ng-table可以吗?

也试过了

$http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id)
                .success(function(data){
                    $scope.ngtableParams = new ngTableParams({count:5}, {
                        counts:[],
                        paginationMaxBlocks: 13,
                        paginationMinBlocks: 2,
                        total:data.length,
                        getData: function(params) {
                            return data;
                        }
                    });
                });

上面的结果也一样!

【问题讨论】:

  • 您可以尝试分离支持的呼叫吗?您可以在ng-table decleration 之外进行后端调用,获取数据并存储在某处,然后在getData() 中返回存储的数据。
  • 您对 ng-table 有什么特别之处??

标签: angularjs pagination ngtable


【解决方案1】:

使用最新版本的 ng-table 我最终使用以下内容:

function IssueCtrl(NgTableParams, IssueService) {
    var self = this;

    loadTable();

    function loadTable() {
        IssueService.getIssues().then(function (issues) {
            self.tableParams = new NgTableParams({
                page: 1,
                count: 5
            }, {
                dataset: issues // might be data instead of dataset depending on ng-table version
            });
        });
    }
 }

感谢dataset,客户端分页工作正常。

所以对于 OP 来说应该是这样的:

$http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id)
            .success(function(result){
                $scope.ngtableParams = new ngTableParams({count:5}, {
                    counts:[],
                    paginationMaxBlocks: 13,
                    paginationMinBlocks: 2,
                    total:result.length,
                    dataset: result // might be data instead of dataset depending on ng-table version
                });
            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2016-06-22
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多