Javascript Datatables表数据清除和表销毁不给出结果

Javascript Datatables表数据清除和表销毁不给出结果,javascript,datatable,destroy,Javascript,Datatable,Destroy,我将数据表与Aurelia框架一起使用。表和它的排序工作得很好,不包括一个时刻。当我检索一个新的数据表时,应该清除并用新数据重新绘制,但我总是看到包含以前和现在传递的数据的行 我的ini代码: if (this.results && this.results.length > 0) { console.log('resultsChanged'); setTimeout(() => { this.table = $('#searchR

我将数据表与Aurelia框架一起使用。表和它的排序工作得很好,不包括一个时刻。当我检索一个新的数据表时,应该清除并用新数据重新绘制,但我总是看到包含以前和现在传递的数据的行

我的ini代码:

if (this.results && this.results.length > 0) {

    console.log('resultsChanged');

    setTimeout(() => {
        this.table = $('#searchResultsTable').DataTable({
            retrieve: true,
            searching: false,
            paging: false,
            info: false,
            orderMulti: false,
            order: [[2, "asc"]],
            dateFormat: 'dd.mm.YYYY'
        });
    }, 200);
}
我曾尝试使用“destroy:true”作为选项,但它恢复了第一个数据源,并没有清除表

我以前也尝试过在以下情况下使用此选项:

if ($.fn.DataTable.isDataTable('#searchResultsTable')) {
    console.log('table exists')
    $.fn.dataTable.destroy('#searchResultsTable');
    // $('#searchResultsTable').dataTable.fnDestroy();
}
但是
$.fn.dataTable.destroy('searchResultsTable')总是抛出错误。
$。fn.dataTable.destroy不是函数

期待您的建议和帮助

更新(完整功能):


如果您想清除数据表并重新绘制它,您可以使用方法执行此操作并重新初始化数据表,这也是您所采用的方法

$.fn.dataTable.destroy('#searchResultsTable'); // This will not work
上面的代码不起作用,因为根据上下文,没有这样的方法

因此,您可以像
那样使用this.table.destroy()
。请注意,
destroy()
方法接受可选的布尔参数,默认情况下该参数为
false
,这意味着表将恢复到其初始状态(因此稍后我们可以重新初始化它)。如果通过
true
,该表将从DOM中完全删除

示例代码片段:

$(文档).ready(函数(){
var表,
btndestory=$(“#销毁”),
btnReInit=$(“#init”),
btnRand=$(“#随机”);
init();
btndestory.on('点击',销毁);
btnReInit.on('click',init');
btnRand.on('click',随机数据);
函数销毁(){
试一试{
表1.destroy();
btndestory.attr('disabled',true);
btnReInit.attr('disabled',false);
btnRand.attr('disabled',false);
}catch(e){console.log(e.message);}
}
函数init(){
table=$(“#我的数据表”).DataTable({
检索:对,
搜索:假,
分页:false,
信息:错,
orderMulti:false,
订单:[
[0,“asc”]
]
});
btndestory.attr('disabled',false);
btnReInit.attr('disabled',true);
btnRand.attr('disabled',true);
}
函数randomData(){
var tbody=$(“#我的数据表tbody”);
html(“”);
var行=[];
var iterations=Math.floor(Math.random()*5)+3;//随机计数行
对于(var i=0;i

可以在重新初始化之前随机化数据

毁灭 重新初始化 随机数据 身份证件 使用者 价值 1. 用户1 34569 2. 用户2 137
尝试将
$.fn.dataTable.destroy
更改为
$.fn.dataTable.destroy
-大写
dataTable
尝试过,但没有帮助是的,因为没有这样的方法检查。如果您想销毁该表,可以调用
this.table.destroy()
如果您有权访问
this.table
@codtex哇,这很有帮助。我以前试过,但没用,不知道为什么。但有一个新问题-在销毁表后,新表不会重新初始化。。。(完整功能更新问题)您可以查看,也可以阅读。还要注意,当您执行
this.table.destroy(“#searchResultsTable”)
时,您正在执行
this.table.destroy(true)
。此方法只允许布尔值
$.fn.dataTable.destroy('#searchResultsTable'); // This will not work