我有几个数据表调用的函数。这是它的简化版本:
addFilter(tableElement: ElementRef, headerName) {
$.fn.dataTable.ext.search.push(
function (settings, data) {
// check table so we only filter the table that was passed in
if (settings.nTable.id !== tableElement.nativeElement.id) {
return true;
}
const columns = settings.aoColumns;
const columnObject = columns.find(function (column) { return column.sTitle === headerName; });
if (columnObject) {
const columnIndex = columnObject.mData;
if (data[columnIndex] === 'true') {
return true;
} else {
return false;
}
}
}
);
}
这就是我想要的,但是我现在遇到的问题是,当我单击列上的排序/顺序图标时,传递给$ .fn.dataTable.ext.search.push的函数越来越叫。它没有调用addFilter函数。只是某种程度上,它正在执行传递到推送中的功能。我的猜测是,当您单击排序图标时,它将在桌子上调用平局,但我不知道如何调用我的push函数。