Подтвердить что ты не робот

Как я могу использовать локальный объект 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.

4b9b3361

Ответ 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 после загрузки таблицы, он не показывает ошибку как "Нет данных в таблице".