Investigamos por distintos espacios y de esta forma traerte la respuesta para tu duda, si tienes dificultades puedes dejar la duda y te contestamos con mucho gusto, porque estamos para servirte.
Solución:
Finalmente obtuve la solución, el problema era que estaba demasiado concentrado en lograr mi objetivo a través de DataTable().ajax.reload()
. Quería pasar los parámetros por allí de una forma u otra, y eso era incorrecto.
Tuve que cambiar la construcción de la options
objeto. Como viste antes, estaba asignando mis parámetros personalizados hacia options
objeto como este:
ajax:
url: this.jsonApiService.buildURL('/test_getUsers.php'),
type: 'POST',
data: this.params,
Dónde data: this.params
obtendría los datos de algún lado, en mi caso, tenía 2 oyentes, uno para en eso y otro para actualizando ese cambio this.params
valor. Esto, en lugar de un oyente podría ser un onChange()
pero el punto es que los parámetros cambian en tiempo de ejecución.
Así que simplemente tuve que poner esto en una función y fusionar los parámetros de DataTable con mis propios parámetros.
Esta es mi solución:
data: function (d)
Object.assign(d, myClass.params);
return d;
Con este options
objeto, cuando tengo que actualizar el DataTable enviando nuevos parámetros al servidor, simplemente llamo ajax.reload()
. DataTables obtendrá el options
objeto con la última data
y recargarse.
¡Realmente espero que esto pueda ayudar a alguien! ¡Buen trabajo y feliz codificación!
En algunos casos, es posible que desee cambiar la URL de ajax en tiempo de ejecución o aplicar cualquier parámetro de consulta adicional.
Entonces puedes hacer esto:
var dataTable = $('#example').DataTable(...);
dataTable.ajax.url('/new-ajax-url?someParam=1').load();
Funciona con la versión v1.10.16 de la biblioteca.
$('#example').dataTable(
"ajax":
"url": "data.json",
"data": function (d)
d.extra_search = $('#extra').val();
);
entonces simplemente llama:
table.ajax.reload();
Aquí puedes ver las comentarios y valoraciones de los usuarios
Nos puedes auxiliar nuestra labor exponiendo un comentario y puntuándolo te lo agradecemos.