我正在尝试使用 DataTables 从内部 API 快速创建简单的结果显示。API 以以下结构返回 JSON:
obj {
status: 1,
results: 100,
offset: 25,
limit: 25,
data: [
[1]: {
title: "Blah blah one",
description: "Doesn't really matter",
misc: "Yadda yadda"
},
[2]: {
title: "Blah blah two",
description: "Doesn't really matter",
misc: "Yadda yadda"
},
]
}
我不能/不想仅仅因为 DataTables 使用奇怪的结构而更改 API 结构,但我想访问用于分页、动态加载等的内置功能。DataTables 似乎允许自定义数据对象,并且我已经让表格加载以下内容:
$(document).ready(function() {
$('#example').dataTable( {
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "http://api.oursite.com/api?limit=100",
"fnServerData": function( sUrl, aoData, fnCallback, oSettings ) {
oSettings.jqXHR = $.ajax( {
"url": sUrl,
"data": aoData,
"success": fnCallback,
"dataType": "jsonp",
"cache": false
} );
},
"sAjaxDataProp": "data",
"aoColumns": [
{ "mData": "title" },
{ "mData": "description" },
{ "mData": "misc" },
]
} );
});
但是,分页或排序功能都不起作用。我认为这是因为 DataTables 需要对象中的结果计数和分页变量——“iTotalRecords”和“iTotalDisplayRecords”。这个对吗?有什么方法可以使用 api 变量吗?提前致谢。我目前在开发控制台中没有收到任何错误,所以如果它出错,它会默默地这样做......