如何解决KTDatatable (Metronic) 中的服务器端分页
我是 Metronic 中 KTDatatable 的新手。
我正在尝试在 Metronic 仪表板中使用服务器端分页,并且我正在解析 KTDatatable 中的数据,但是我找不到一种方法来解析从 API 返回的数据并查看页数和每页网址。
到目前为止我能够编写的代码是:
data: {
type: 'remote',source: {
read: {
url: dataURL,method: 'GET',contentType: 'application/json',map: function(data) {
var cards = data.cards.data;
var currentPage = data.cards.current_page;
var lastPage = data.cards.last_page;
return cards;
}
},},pageSize: 10,serverPaging: true,
在这段代码中,我能够获得前十条记录,但是:
1- 我无法在表格中按照我想要的方式解析它们。
2- 我无法显示页码,也无法为我想要的第二页或 (x) 页调用 API。
这些是我想做的事情。
提前致谢。
解决方法
您可以回到 KT-Datatable 文档的末尾以找到您想要的大部分答案KT-Datable documentation,但我会解释更多,希望它会更清楚。
所以从 API (Json) 返回的值应该看起来有两个主要对象 meta 和 data,它看起来像这样:
{
"meta": {
"sort": "desc","field": "IssueName","page": 1,"pages": 2,"perpage": "10","total": 11
},"data": [
{
"IssueName": "******","CardNumber": "******"
},{
"IssueName": "******","CardNumber": "******"
}
]
}
从 API 获取响应的值后,您应该只返回要由数据表解析的数据对象,因此 map 函数应如下所示:
map: function(data) {
return data.data;
}
它会自己处理元数据。
要将数据解析到列中,您应该在列定义数组中使用与数据相同的键名,因此在我的示例中,我是这样使用的:
columns: [
{
field: 'IssueName',title: columnsTitles.issue,type: 'string',},{
field: 'CardNumber',title: columnsTitles.card_number,]
每次数据表调用 API 时,它都会发送更多数据来帮助您做出正确的响应,数据将位于数组的形状上(字段名称应与键相同):>
[
"pagination" => array:4 [
"page" => "1"
"pages" => "2"
"perpage" => "10"
"total" => "11"
],"sort" => array:2 [
"field" => "IssueName"
"sort" => "desc"
],]
发送的数据与你必须从API获取的分页和排序类型有关,你也可以添加过滤器,它们会存储在“查询”字段中的数组中,你可以在“查询”字段中处理它们后端。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。