Как вызвать (filter-) функции valueGetter для внешнего фильтра в ag-grid? - PullRequest
0 голосов
/ 24 апреля 2018

Я использую 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, например, путем добавления двух других столбцов.)

1 Ответ

0 голосов
/ 25 сентября 2018

Вместо использования valueGetter вы можете добавить в модель данных настраиваемое поле, которое вы вычисляете до подачи данных в сетку.Вам нужно будет предварительно обработать данные, а затем использовать это новое поле в определении столбца и внешнем фильтре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...