gpt4 book ai didi

angularjs - ngTable 不排序?

转载 作者:行者123 更新时间:2023-12-01 03:29:27 26 4
gpt4 key购买 nike

我正在尝试使用 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 的文档很差并且缺少示例。谁能告诉我如何在客户端排序?

最佳答案

自动排序仅在与完整 dataset 一起使用时才有效。属性(如在简单示例中所见 here )。

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

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

关于angularjs - ngTable 不排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38984690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com