Как мне указать dataTables проверять наличие обновленных данных в магистральной коллекции? - PullRequest
9 голосов
/ 28 февраля 2012

Я работаю над интеграцией backbone.js с dataTables.

У меня есть jsfiddle: http://jsfiddle.net/mwagner72/ekgZk/17/

Пока что я думаю, что я ближе всего с этой настройкой:

var Chapter = Backbone.Model;
var chapters = new Backbone.Collection();

chapters.add(new Chapter({ page: 9, title: "The End" })); 
chapters.add(new Chapter({ page: 5, title: "The Middle" }));
chapters.add(new Chapter({ page: 1, title: "The Beginning" }));

$('#table_id_3').dataTable({
    "aoColumns": [
        {"sTitle": "Title", "mDataProp": "title"},
        {"sTitle": "Page #","mDataProp": "page"}],
    sAjaxSource: "",
    sAjaxDataProp: "",
    fnServerData: function(sSource, aoData, fnCallback) {
        console.log('here we go');
        fnCallback(chapters.toJSON());
    }
});

Это использует мою коллекцию в качестве источника данных для моей таблицы данных.

Мой вопрос:

Как мне указать dataTables проверять наличие обновленных данных в коллекции?

Ответы [ 2 ]

14 голосов
/ 02 марта 2012

Итак, я нашел ответ с помощью Аллена на сайте jquery dataTables.хитрость заключается в том, чтобы использовать fnReloadAjax (), который будет перерисовывать ваши данные на основе коллекции снова.

$('#table_id_3').dataTable({
    "aoColumns": [
        { "sTitle": "Title",   "mDataProp": "title" },
        { "sTitle": "Page #",  "mDataProp": "page" }],
    sAjaxSource: "",
    sAjaxDataProp: "",
    fnServerData: function( sSource, aoData, fnCallback ){
        console.log(chapters.toJSON());
        fnCallback(chapters.toJSON());
    }
});

chapters.add(new Chapter({page: 4, title: "The next bunny"}));

var oTable3 = $('#table_id_3').dataTable();
oTable3.fnReloadAjax();

У меня есть jsfiddle, расположенный здесь: http://jsfiddle.net/mwagner72/ekgZk/

3 голосов
/ 28 февраля 2012

Вы должны создать Backbone.View, которое указывает на ваш экземпляр datatables и связано с вашей коллекцией глав.Вы можете использовать функцию рендеринга представления для чтения из коллекции и повторного заполнения сетки.Кроме того, вы можете связать событие «изменение» с коллекцией, чтобы активировать функцию рендеринга представления, чтобы ваша коллекция и ваше представление были синхронизированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...