angularjs – ngTable不排序?

我试图使用ngTable在html上显示数据.

在html中,我将所有列都“排序”.

  <table ng-table="fm.tableParams" class="table" show-filter="false">
        <tr ng-repeat="report in $data">
            <td title="'ReportId'" sortable="'reportId'" class="text-center">
                {{report.reportId}}</td>
            <td title="'SampleId'" sortable="'sampleId'" class="text-center">
                {{report.sampleId}}</td>
            <td title="'MRN'" sortable="'mrn'" class="text-center">
                {{report.mrn}}</td>
            <td title="'Diagnosis'" sortable="'diagnosis'" class="text-center">
                {{report.diagnosis}}</td>
        </tr>
    </table>

从服务器检索数据.
controller.js

ristoreApp.controller("fmCtrl",
    ['$scope', 'fmFactory', 'NgTableParams', function($scope, fmFactory, NgTableParams) {
        var self = this;
        $scope.selection = '0';
        $scope.fmSearch = function () {
            if ($scope.selection == '0') {
                self.tableParams = new NgTableParams({
                    page: 1,            // show first page
                    count: 10,          // count per page
                }, {
                    getData: function (params) {
                        return fmFactory.getAll().then(function(response) {
                            var reports = response.data;
                            params.total(reports.length);
                            console.log(reports.length);
                            return reports;
                        });

                    }
                });
                self.tableParams.reload();
            }
        }
    }]
)

它确实在页面中显示记录.但是,排序不适用于任何列.我需要做些什么来使它工作?

编辑:
根据ngtable.com,“您需要将NgTableParams.sorting()中的值应用于要在表中显示的数据.这通常是从服务器获取数据的情况.”但是它没有说明如何将此方法应用于数据.似乎ngtable 1.0.0文档记录不足,缺乏示例.任何人都可以告诉我如何在客户端排序?

最佳答案 自动排序仅在与完整数据集属性一起使用时才有效(如简单示例
here中所示).

当您实现getData()方法时,轮到您(或者在大多数情况下是服务器的任务)进行排序.在params属性中,您可以找到通常需要传递给服务器的排序,以便服务器可以进行排序.特别是当使用分页视图(因此不是一次返回所有项目)时,服务器需要在选择页面的相关项目之前进行排序.

因此,如果您没有很多项目并且不需要分页,则可以在返回之前对其进行排序.如果您不想事先加载所有项目,则需要将排序信息传递给服务器,让服务器进行排序和分页.

点赞