我正在尝试使用Data Tables jQuery库在表中创建我的AJAX请求(JSON结构)的结果。 AJAX调用正在成功执行,但由于某种原因,表尚未创建。
HTML:
div class="table-responsive">
<table id="myTable" class="table table-striped table-bordered table-hover" data-page-length='14'>
</table>
</div>
JS:
$(document).ready(function() {
$('#myTable').DataTable({
ajax: {
type: "GET",
url: "http://API END POINT",
dataSrc: "_deployments",
success: function(response) {
console.log(response);
return response;
}
},
columns: [
{ data: "service_name" },
{ data: "git_organization" }
]
});
});
JSON结构("_deployments"
数组中的每个对象都是我需要访问的一系列键值对,但不会使用所有这些对象:
{
"_total": 1853,
"_page_size": 10,
"_page_current": 1,
"_page_last": 186,
"_deployments": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{}]
}
从我从文档中读到的内容,我通过将dataSrc
的值声明为"_deployments"
来指定所需数据是一个对象数组。我还尝试将名称/值对指定为{ data: "key" },...
,但这也不起作用。此时,对实际问题有点困惑。
我之前尝试过在HTML表格中预定义列,以及thead
和tbody
,但我读到这不一定是必需的,但它没有解决问题。有什么想法吗?
答案 0 :(得分:1)
jQuery DataTables需要以下其中一项才能初始化表。
table
元素与thead
,tbody
和可选tfoot
元素的正确HTML标记。有关详细信息,请参阅official documentation。
例如:
<table id="myTable" class="table table-striped table-bordered table-hover" data-page-length='14'>
<thead>
<tr>
<th>Service Name</th>
<th>Organization</th>
</tr>
</thead>
</table>
或者,您可以使用空的table
元素,但需要为columns.title
指定标题,并为每列指定columns.data
的数据源。
例如:
columns: [
{ title: "Service Name", data: "service_name" },
{ title: "Organization", data: "git_organization" }
]
有关代码和演示,请参阅this example。
看起来您的服务器端脚本返回分页数据,但格式与jQuery DataTables would expect不同。除了上述更改之外,您还需要更改数据格式或使用columns.dataSrc
选项将数据格式转换为jQuery DataTables理解的内容。