首页 > 解决方案 > headerFilterParams 函数抛出“单元格未定义”错误

问题描述

见:http: //jsfiddle.net/wc8mqf0t/1

function columnHeaderMenu() {
    return [{
        label: "Clear Filter",
        action: function (e, column) {
            column.setHeaderFilterValue("");
        }
    }]
}

function editorParams(cell) {
    let table = this;
    let valuesObj = {
        multiselect: true,
        sortValuesList: "asc",
        values: table.getData("active").map(data => data[cell.getField()])
        //values: true
    };

    return valuesObj;
}

let table = new Tabulator("#table", {
    data: [
        { "col1": "a" },
        { "col1": "b" },
        { "col1": "c" }
    ],
    columns: [
        {
            title: "Column1",
            field: "col1",
            headerMenu: columnHeaderMenu,
            headerFilter: "select",
            headerFilterParams: editorParams,
            headerFilterFunc: "in",
            headerFilterLiveFilter: false
        }
    ]
});

在我的制表器表中,我有一个自定义 headerFilterParams 函数,它应该只使用表中的“活动”值填充过滤器。

但是,当过滤器打开时,最初没有填充任何内容,然后在调用我的清除过滤器函数时,会引发“单元格未定义”错误,尽管文档显示单元格是编辑器的可用参数。

在 JSFiddle 中,如果您注释掉 editorParams 中的“values”属性并将其切换为 true,则它可以正常工作,但这不是预期的结果,我只想要文档调用它时可见或“活动”的值

我感谢任何帮助,谢谢。

标签: tabulator

解决方案


这是由于文档中的错误而发生的,该单元格从未传递到该函数中,我建议在 Repo 上消除一个错误,他们可以在下周左右得到修复


推荐阅读