Как я могу использовать локальный объект JSON в качестве источника данных для jQuery DataTables
У меня есть локальный объект JSON, отформатированный следующим образом:
[{
"id": "58",
"country_code": "UK",
"title": "Legal Director",
"pubdate": "2012-03-08 00:00:00",
"url": "http://..."
},{
"id": "59",
"country_code": "UK",
"title": "Solutions Architect,",
"pubdate": "2012-02-23 00:00:00",
"url": "http://..."
},{
// ....more of the same......
}]
Я хотел бы установить это как источник данных для jQuery datatable и пробовал это:
testdata = '{{ jobsJSON | raw }}'; //twig template tag
console.log(testdata);
$('#test').dataTable({
"aoData": testdata,
"aoColumns": [
{ "mDataProp": "id" },
{ "mDataProp": "country_code" },
{ "mDataProp": "title" },
{ "mDataProp": "pubdate" },
{ "mDataProp": "url" }
]
});
Плагин DataTables загружает и пытается рисовать таблицу, но дает ошибку "Нет данных в таблице"
Я не делаю вызов AJAX и просто хочу получить доступ к объекту JSON из локальной переменной JS.
Ответы
Ответ 1
Свойство для предоставления ваших собственных данных aaData
NOT aoData
:
testdata = [{"id":"58",...}]; // local object
$('#test').dataTable({
"aaData": testdata,
"aoColumns": [
{ "mDataProp": "id" },
{ "mDataProp": "country_code" },
{ "mDataProp": "title" },
{ "mDataProp": "pubdate" },
{ "mDataProp": "url" }
]
});
Рабочая скрипка
Ответ 2
Я воспользовался той же проблемой, решение выглядит так:
Поместите $('#list_table').dataTable
код в функцию setTimeout
, чтобы отложить приложение dataTable на 5 секунд:
setTimeout("$('#list_table').dataTable ...." , 5000);
Я заметил, что применять плагин dataTable в firebug после загрузки таблицы, он не показывает ошибку как "Нет данных в таблице".