Я могу привести пример того, как вы можете сделать это динамически через объекты javascript, в массиве веток вы можете назначить свой массив объекту javascript или получить его напрямую через ajax, это ваше дело.
ВЧтобы создавать таблицы данных с новыми столбцами, необходимо уничтожить таблицу данных и повторно инициализировать ее.Документация по уничтожению и загрузке новых столбцов в таблице находится здесь:
https://datatables.net/reference/api/destroy()
Я создал для вас пример в jsfiddle, как динамически загружать данные и столбцы, которые вы можете настроить для своих нужд:
var data = {
"data": [
{
"id": "1",
"One": "Row 1 - Field 1",
"Two": "Row 1 - Field 2",
"Three": "Row 1 - Field 3"
},
{
"id": "2",
"One": "Row 2 - Field 1",
"Two": "Row 2 - Field 2",
"Three": "Row 2 - Field 3"
},
{
"id": "2",
"One": "Row 2 - Field 1",
"Two": "Row 2 - Field 2",
"Three": "Row 2 - Field 3"
}
],
"options": [],
"files": [],
//in columns you need to map data to key in data array above!!
"columns": [
{
"title": "id",
"data": "id"
},
{
"title": "One",
"data": "id"
},
{
"title": "Two",
"data": "Two"
},
{
"title": "Three",
"data": "Three"
}
]
}
И инициализация:
$('#example').DataTable( {
dom: "Bfrtip",
data: data['data'] ,
columns: data['columns']
});
https://jsfiddle.net/nicandr/xjue540a/4/
Вот базовый пример, как это сделать.Обратите внимание, что вам нужно повторно инициализировать таблицу после того, как вы получили данные, потому что все данные будут в объекте, который вы собираетесь предоставить в таблицы данных.
В настоящее время нет возможности динамически загружать столбцы без повторной инициализации, поэтому единственный способ - его повторная инициализация.Пожалуйста, проверьте ссылку на уничтожить таблицу, они там говорят.