我的问题与此类似:jQuery Datatable-更改数据url,但我不想在设置Datatable时调用ajax
我对datatable有以下设置:
p._createDataTableMappings = function (application, field) {
$('#data_mappings').DataTable({
"dom": 'rtip',
"ajax": {
"url": "/api/applications/" + application + "/mappings/" + field,
"dataSrc": ""
},
"columns": [
{ "data": "Application1" },
{ "data": "Field1" },
{ "data": "Value1" },
{ "data": "Application2" },
{ "data": "Field2" },
{ "data": "Value2" }
]
});
url返回的数据是一个对象数组,因此我将dataSrc设置为“”
但我不想在应用程序和字段值有数据之前调用ajax。这些值通过此函数设置:
$("#search").on("click", function (event) {
var application_value = $("#application").val();
var field_value = $("#field").val();
if (application_value && field_value) {
var table = $("#data_mappings").DataTable();
table.ajax.url("/api/applications/" + application_value + "/mappings/" + field_value).load();
}
});
我的疑问是如何配置ajax调用
"ajax": {
"url": "/api/applications/" + application + "/mappings/" + field,
"dataSrc": ""
},
>
如果我删除url属性,我会从数据中得到一个警告:无效的JSON响应
如果我删除了设置函数中的整个ajax属性,调用table.ajax.url(myUrl). load()
需要一个属性名为data的对象,但是我有一个对象数组。
正如@尤里所说,最好的方法可能是破坏桌子并重建它。这个实时示例可能会有所帮助——你按下一个按钮来加载数据,所以这类似于你的点击事件。