jquery jquery-datatables datatables-1.10

jQuery dataTables 1.10.5 propiedades personalizadas



jquery-datatables datatables-1.10 (3)

Por algún motivo, table.settings.oInit se puede acceder después de la inicialización. Después de la inicialización, ni table.settings ni $("#table").DataTable().settings contiene oInit (o una función para acceder a los valores de inicialización). Una solución alternativa es almacenar oInit en una variable:

var init; $(''#example'').DataTable({ customProp: ''Hello World'', initComplete: function(settings) { init = settings.oInit; } });

Ahora puedes hacer esto:

alert(init.customProp);

demo (1.10.5) -> http://jsfiddle.net/ajLe1484/

Aparentemente dataTables pasa un objeto en las devoluciones de llamada, y un objeto diferente de alguna manera "limpiado" por la instancia de la tabla. Estoy un poco sorprendido de que DataTables lo haga. También lo probó con 1.10.x - el comportamiento fue el mismo, por lo que no lo es porque oInit ha sido oscurecido por 1.10.5.

Estoy intentando establecer una propiedad personalizada y poder acceder / editarla más tarde. ¿Es esto posible, he visto en la versión anterior uno puede usar fnSettings pero cómo lo uso en 1.10.5?

$(''#table'').DataTable({ customProp: ''Hello World'' });

Luego, con un clic del botón, pensé que podría hacer lo siguiente:

$(''.test'').on(''click'', function(e){ var table = $(''#table'').DataTable(); console.log(table.settings.oInit.customProp); }

Sin embargo, obtengo: UnEught TypeError: no se puede leer la propiedad ''customProp'' de undefined

¿Alguien sabe cómo puedo hacer esto?


Puede usar el método jQuery data() para almacenar datos en el elemento asociado. Por ejemplo:

$(''#table'').data(''customProp'', ''Hello World'');

Más tarde puede recuperarlo como se muestra a continuación:

$(''.test'').on(''click'', function(e){ console.log($(''#table'').data(''customProp'')); }


Para DataTables 1.10.10 y posterior, funcionará lo siguiente:

$(''#table'').DataTable({ customProp: ''Hello World'' }); console.log($(''#table'').DataTable().init().customProp);