2012-02-27 8 views
9

Estoy trabajando en la integración de backbone.js con dataTables.¿Cómo le digo a los dataTables que verifiquen los datos actualizados en una colección de red troncal?

Tengo un jsFiddle aquí: http://jsfiddle.net/mwagner72/ekgZk/17/

Hasta ahora creo que estoy más cerca con esta configuración:

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()); 
    } 
}); 

Esto es usando mi colección como fuente de datos para mi dataTable.

Mi Pregunta:

¿Cómo le digo tablas de datos para comprobar si los datos actualizados de la colección?

Respuesta

14

Así que encontré la respuesta con la ayuda de allen en el sitio jquery dataTables. el truco es usar fnReloadAjax() que volverá a dibujar su tabla de datos fuera de la colección.

$('#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(); 

He aquí un jsFiddle ubicada: http://jsfiddle.net/mwagner72/ekgZk/

+2

Esto funciona, pero si alguien es un poco como yo, y nunca tenía un aspecto en el violín, la función fnReloadAjax es un plugin de http: // datatables.net/plug-ins/api (Al menos eso no estaba claro para mí) – ivarni

3

Debe construir un Backbone.View que apunte a su instancia de datatables y que esté asociado con su colección de capítulos. Puede usar la función de representación de la vista para leer desde la colección y volver a llenar la cuadrícula. Además, puede vincular el evento "cambiar" en la colección para activar la función de representación de la vista, de modo que su colección y su vista se mantendrán sincronizadas.

Cuestiones relacionadas