Jquery Datatable-无法读取属性';sSortAscending';未定义的

Jquery Datatable-无法读取属性';sSortAscending';未定义的,jquery,html,datatable,datatables,Jquery,Html,Datatable,Datatables,我正在尝试重新加载datatable的数据。为此,我清理表,然后动态添加行 JS HTML 数据1 数据2 数据3 返回 jquery.dataTables.min.js:68未捕获类型错误:无法读取属性 未定义的“sSortAscending” 所以,有人知道怎么回事吗?试着这样做,而不是: if ($.fn.DataTable.isDataTable("#achats_table")) { $('#tbl_mostrar_alarmas').DataTable().clear()

我正在尝试重新加载datatable的数据。为此,我清理表,然后动态添加行

JS

HTML


数据1
数据2
数据3
返回

jquery.dataTables.min.js:68未捕获类型错误:无法读取属性 未定义的“sSortAscending”


所以,有人知道怎么回事吗?

试着这样做,而不是:

if ($.fn.DataTable.isDataTable("#achats_table")) {
    $('#tbl_mostrar_alarmas').DataTable().clear();
    $('#tbl_mostrar_alarmas').DataTable().destroy();
    $('#tbl_mostrar_alarmas').empty();
}

试着这样做,而不是:

if ($.fn.DataTable.isDataTable("#achats_table")) {
    $('#tbl_mostrar_alarmas').DataTable().clear();
    $('#tbl_mostrar_alarmas').DataTable().destroy();
    $('#tbl_mostrar_alarmas').empty();
}

解决方案

我找到了解决办法。尝试多次加载datatable配置时出现错误。为了避免这种情况,我需要检查配置是否已加载(或未加载),并且只加载一次

  if ($.fn.DataTable.isDataTable('#tbl_mostrar_alarmas')) {
        $('#tbl_mostrar_alarmas').DataTable().clear().rows.add(tablaModalData).columns.adjust().draw();
    } else {
        table();
    }

    var table = $('#tbl_mostrar_alarmas').DataTable({
                'responsive': true,
                'bRetrieve': true,
                "bLengthChange": false,
                'pageLength': 5,
                "data": tablaModalData,
                "order": [
                    0, 'desc'
                ],
                "columns": [{
                        "data": "fecha",
                        "defaultContent": "-",
                    },
                    {
                        "data": "usuario",
                        "defaultContent": "-"
                    },
                    {
                        "data": "suceso",
                        "defaultContent": "-",
                    }
                ],
                "columnDefs": [{
                    "targets": 0,
                    render: function(data) {
                        return moment(data).format('DD/MM/YYYY HH:mm');
                    }
                }]
            }

            table();

解决方案

我找到了解决办法。尝试多次加载datatable配置时出现错误。为了避免这种情况,我需要检查配置是否已加载(或未加载),并且只加载一次

  if ($.fn.DataTable.isDataTable('#tbl_mostrar_alarmas')) {
        $('#tbl_mostrar_alarmas').DataTable().clear().rows.add(tablaModalData).columns.adjust().draw();
    } else {
        table();
    }

    var table = $('#tbl_mostrar_alarmas').DataTable({
                'responsive': true,
                'bRetrieve': true,
                "bLengthChange": false,
                'pageLength': 5,
                "data": tablaModalData,
                "order": [
                    0, 'desc'
                ],
                "columns": [{
                        "data": "fecha",
                        "defaultContent": "-",
                    },
                    {
                        "data": "usuario",
                        "defaultContent": "-"
                    },
                    {
                        "data": "suceso",
                        "defaultContent": "-",
                    }
                ],
                "columnDefs": [{
                    "targets": 0,
                    render: function(data) {
                        return moment(data).format('DD/MM/YYYY HH:mm');
                    }
                }]
            }

            table();

您使用的是旧版本的datatables吗?较新版本使用
$('tbl_mostrar_alarmas')。数据表
带有大写字母
D
。请更正。您使用的是旧版本的datatables吗?较新版本使用
$('tbl_mostrar_alarmas')。数据表
带有大写字母
D
。请更正。@ElHombreSinNombre这意味着它正在尝试在销毁完成之前重新创建表。尝试使用我提到的大写字母D初始化datatabse。或者用
$(“#tbl_mostrar_alarmas”).dataTable().fndrow()替换我的前两行我将datatable更改为datatable(我也更新了问题),并且出现了相同的错误。@ElHombreSinNombre请尝试在代码段中重新创建问题。因为我给你的代码是重新初始化数据表的正确方法。如果错误仍然存在,那么问题来自其他地方,没有进一步的细节,我无法猜测。不幸的是,我找到了解决方案并更新了帖子。无论如何,谢谢你的帮助。@ElHombreSinNombre很高兴尝试过;)在单独的答案中发布您的解决方案,解释错误,并将其标记为已回答。@ElHombreSinNombre这意味着它正在尝试在销毁完成之前重新创建表。尝试使用我提到的大写字母D初始化datatabse。或者用
$(“#tbl_mostrar_alarmas”).dataTable().fndrow()替换我的前两行我将datatable更改为datatable(我也更新了问题),并且出现了相同的错误。@ElHombreSinNombre请尝试在代码段中重新创建问题。因为我给你的代码是重新初始化数据表的正确方法。如果错误仍然存在,那么问题来自其他地方,没有进一步的细节,我无法猜测。不幸的是,我找到了解决方案并更新了帖子。无论如何,谢谢你的帮助。@ElHombreSinNombre很高兴尝试过;)在一个单独的答案中张贴你的解决方案,解释错误所在,并将其标记为已回答。