数据表单独更改选项

Datatables change options individually

我正在处理数据表,我 运行 遇到了这个问题。

我在一个页面(以及在我的系统中)有多个表,它们都有通用选项,如数据源、响应式等。 但是有些表格有一些独特的选项,比如 bSort、aoColumns 等等...

所以我的问题是:我可以使用通用选项初始化所有这些选项,然后分别更改这些选项吗?


现在,这就是我正在做的事情:

var TabClienteFisico_01 = $('#cfisico').dataTable({
    responsive: true,
    bProcessing: true,
    bServerSide: false,
    aoColumns : [
        { "mData": "id" },
        { "mData": "nm_cliente" },
        { "mData": "cpf" },
        { "mData": "tel" },
        { "mData": "cidade" }
    ],
    "ajax": {
        "url": "data/c_fisico.json",
    },
    "dataType": "json"
});

var TabClienteFisico_02 = $('#cfisico2').dataTable({
    responsive: true,
    bProcessing: true,
    bServerSide: false,
    bSort: false,
    aoColumns: [
        { "mData": "id" },
        { "mData": "nm_cliente" },
        { "mData": "cpf" }
    ],
    "ajax": {
        "url": "data/c_fisico.json",
    },
    "dataType": "json"
});

这就是我想做的事情:

var mainTab = $('.mainTab').dataTable({
    responsive: true,
    bProcessing: true,
    bServerSide: false,
    "ajax": {
        "url": "data/c_fisico.json",
    },
    "dataType": "json"
});
var TabClienteFisico_01 = $('#cfisico1').dataTable({
    aoColumns: [
        { "mData": "id" },
        { "mData": "nm_cliente" },
        { "mData": "cpf" },
        { "mData": "tel" },
        { "mData": "cidade" }
    ]
});
var TabClienteFisico_02 = $('#cfisico2').dataTable({
    bSort: false,
    aoColumns: [
        { "mData": "id" },
        { "mData": "nm_cliente" },
        { "mData": "cpf" }
    ]
});

在 HTML 中它将是:

<table id="cfisico1" class"mainTab"> ... </table>
<table id="cfisico2" class"mainTab"> ... </table>

有办法吗?

您可以扩展作为参数传递给数据表方法的选项对象,例如:

var options = {
    responsive: true,
    bProcessing: true,
    bServerSide: false
};

var opt01 = $.extend({}, options, {
    aoColumns: [
        { "mData": "id" },
        { "mData": "nm_cliente" },
        { "mData": "cpf" },
        { "mData": "tel" },
        { "mData": "cidade" }
    ]
});
var opt02 = $.extend({}, options, {
    bSort: false,
    aoColumns: [
        { "mData": "id" },
        { "mData": "nm_cliente" },
        { "mData": "cpf" }
    ]
});

var TabClienteFisico_01 = $('#cfisico1').dataTable(opt01),
    TabClienteFisico_02 = $('#cfisico2').dataTable(opt02);