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