数据表,如果在选项内部

时间:2017-03-24 14:58:00

标签: javascript jquery datatable

有没有办法可以使用javascript在数据表选项中启用/禁用deferLoading? 基于一些用户选择,我希望能够让表格在页面刷新时显示结果,或者等到用户从过滤器中选择某些内容。

假设我有这个数据表。

function initTestTable(){
    myTable =  $('#testTable').DataTable({
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "request.php?action=list",
    ......
 });
}

我想做的是这样的事情:(我知道错了)

    //so basically if dontShow is 1 then the datatable wont show anything
    var dontShow = 1;

    function initTestTable(){
        myTable =  $('#testTable').DataTable({
        "bProcessing": true,
        "bServerSide": true,
        if (dontShow === 1){
        "deferLoading": 0,
        }
        "sAjaxSource": "request.php?action=list",
        ......
     });
    }

1 个答案:

答案 0 :(得分:2)

不要让Datatable或jQuery让你感到困惑,你的问题不在于他们。您的问题是如何根据某些条件使用一组键创建对象。

这部分问题,要明确:

{
    "bProcessing": true,
    "bServerSide": true,
    if (dontShow === 1){
    "deferLoading": 0,
    }
    "sAjaxSource": "request.php?action=list",
    ......
 }

现在我们专注于问题,我认为解决问题会更容易。您只需根据条件创建具有属性的对象。一个非常普通和简单的解决方案是:

data = {
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "request.php?action=list",
    ......
}

if (dontShow === 1){
    data.deferLoading = 0
}

然后,您只需将data对象提供给Datatable构造函数$('#testTable').DataTable(data)即可。