/ / Change quantidade de colunas dataTable usando a chamada ajax - javascript, jquery, json, ajax, tabela de dados

Altere a quantidade de colunas dataTable usando a chamada ajax - javascript, jquery, json, ajax, datatable

Quero alterar a quantidade de colunas em dataTable usando um parâmetro JSON recebido pelo Ajax quando a dataTable fez a chamada.

Então eu tentei isso:

var columns = [
{data: "data1"},
{data: "data2"},
{data: "data3"}
];

$("#table").dataTable({
ajax: {
url: "controller/get_table",
dataSrc: function (json) {
if (json.param) {
columns.push({data: "data4"});
columns.push({data: "data5"});
}
return json.data;
}
},
columns: columns,
...

Mas eu descobri que o array de colunas é usado pelo dataTable ANTES do dataSrc, então quando a função muda o array de colunas, é tarde demais.

Como posso fazer isso sem uma segunda chamada do Ajax para o param? Apenas usando a chamada de dataTable.

Respostas:

1 para resposta № 1

Inicie sua dataTable no retorno de chamada do ajax.

$.ajax({
//get your json params
}).done(function(response){
$("#table").dataTable({response});
});

Datável como um método draw () que força a desenhar a tabela na página web.

Você também pode fazer isso com promessas.