在加载时将 DataTable 引用传递给回调函数
2022-03-02
958
我当前的代码是:
var CommissionLogs = $("#CommissionLogs").DataTable({
ajax: {
url: ajaxurl + '?action=pos&post_action=get_commissions'
},
'initComplete': function (settings, json){
//possible to access 'this'
this.api().columns(1);
}
});
我在帮助下改进了上面的代码,如下所示:
var CommissionLogs = $("#CommissionLogs").DataTable({
ajax: {
url: ajaxurl + '?action=pos&post_action=get_commissions'
},
'initComplete': function(settings, json){
callbackFunction(settings);
}
});
function callbackFunction(settings){
var api = new $.fn.dataTable.Api( settings );
// api is accessible here.
}
更新:
现在我可以从回调函数访问 api。但我想使用与以下代码相同的带有 load() 的回调。
CommissionLogs.ajax.url( newAjaxURL ).load( callbackFunction(), true);
但设置参数在加载函数中不可访问。
我可以清除和销毁数据表并始终重新初始化。但什么才是正确的方法。
2个回答
我认为您需要
settings
:
https://datatables.net/reference/type/DataTables.Settings
$('#example').dataTable( {
"initComplete": function(settings, json) {
myFunction(settings);
}
});
function myFunction(settings){
var api = new $.fn.dataTable.Api( settings );
// Output the data for the visible rows to the browser's console
// You might do something more useful with it!
console.log( api.rows( {page:'current'} ).data() );
}
其他选项是在整个代码中重复使用
var CommissionLogs
变量而不使用
this
,
我强烈推荐最后一个选项
。
Dani
2022-03-02
dataTable.ajax.url().load() 无法访问设置。
因此无法使用设置调用回调函数。
但可以在没有设置的情况下使用回调函数。
因此这里有一种使用设置的替代方法。
CommissionLogs.clear();// clear the table
CommissionLogs.destroy();// destroy the table
CommissionLogs = $("#CommissionLogs").DataTable({
ajax: {
url: newAjaxUrl
},
'initComplete': function (settings, json){
callbackDatatableFunciton(settings);
}
});
infomasud
2022-03-02