Javascript jQuery数据表条件设置

Javascript jQuery数据表条件设置,javascript,jquery,datatables,Javascript,Jquery,Datatables,我想知道是否有一种方法可以有条件地设置jQuery数据表的属性,从而避免重复使用重复属性的几乎相同的表转换调用 例如,我有一个表,如果某个布尔值为true,我想在该表上提供一个Excel导出按钮,但如果该布尔值为false,则不提供该表 if blnExport { $('#tblDetail').DataTable({ bPaginate: false, aaSorting: [], language: { emptyTable: "No

我想知道是否有一种方法可以有条件地设置jQuery数据表的属性,从而避免重复使用重复属性的几乎相同的表转换调用

例如,我有一个表,如果某个布尔值为true,我想在该表上提供一个Excel导出按钮,但如果该布尔值为false,则不提供该表

if blnExport {
    $('#tblDetail').DataTable({
        bPaginate: false,
        aaSorting: [],
        language: { emptyTable: "No Results Found" },
        dom: 'Bfrtip',
        buttons: [
        {
            extend: 'excel',
            text: 'Export to Excel',
            exportOptions: {
                columns: [0, 1, 2, 3, 4, 5, 6, 7]
            } 
        }]
    });
}    
else {
    $('#tblDetail').DataTable({
        bPaginate: false,
        aaSorting: [],
        language: { emptyTable: "No Results Found" }
    });
}

有没有办法通过一次转换调用来实现这一点?谢谢。

假设您有这样一个
函数:

function myFunction(params) {
    //Do something
}

让我们考虑这个例子:

var input = {
    a: 1;
};

if (Math.floor(Math.random() * 2)) {
    input.b = 2;
}

myFunction(input);
正如您在示例中所看到的,
a
始终是
input
的成员,但我们随机决定
b
是否应该在其中。基本上,这个想法是:

  • 使用您确实需要的内容创建
    input
    对象
  • 检查所需内容并添加
  • 将其传递给
    功能
让我们将此应用于您的具体案例:

var input = {
    bPaginate: false,
    aaSorting: [],
    language: { emptyTable: "No Results Found" }
};

if (blnExport) {
    input.dom = 'Bfrtip';
    input.buttons = [{
        extend: 'excel',
        text: 'Export to Excel',
        exportOptions: {
            columns: [0, 1, 2, 3, 4, 5, 6, 7]
        } 
    }];
}
$('#tblDetail').DataTable(input);

条件是什么?如果要显示excel按钮,代码是什么?如果不显示,代码是什么?我问题中的代码是我目前如何处理的。如果blnExport为true,那么我将创建一个带有excel导出按钮的数据表。如果blnExport为false,我将创建一个没有excel按钮的datatable。这是我的问题。有没有办法只进行一次数据表转换,然后根据特定条件设置一些属性?这样,无论blnExport是什么,我都不必复制相同的属性。在本例中,如果blnExport为true,我希望包含excel按钮。