Я использую ag-grid с angular и хочу применить к нему внешний фильтр.
Документация показывает пример того, как может выглядеть функция doesExternalFilterPass
:
function doesExternalFilterPass(node) {
switch (ageType) {
case 'below30': return node.data.age < 30;
...
default: return true;
}
}
Он в основном использует необработанные данные для фильтрации строк. Поскольку я использую функции columnGetter / filterValueGetter для изменения значений, я хочу, чтобы внешний фильтр фильтровал на основе возвращаемых значений этих функций, но я не нашел подходящего способа сделать это.
Я могу получить желаемое значение, позвонив
this.gridOptions.api.getValue(columnId, node);
(который вызывает valueGetter под капотом) вместо
node.data[columnId]
но я не нашел ни одного примера, делающего это таким образом.
Поэтому я спрашиваю, как правильно вызывать функции valueGetter внутри doesExternalFilterPass
или как кто-то еще подошел к этой проблеме.
(Это особенно важно, если у вас есть строки, которые даже не включены в объект данных. Это тот случай, когда значения столбцов вычисляются с помощью функции valueGetter / filterValueGetter, например, путем добавления двух других столбцов.)