如何为 ag-grid 中的外部过滤器调用(filter-)valueGetter 函数?

How to call (filter-) valueGetter functions for external filter in ag-grid?

我正在将 ag-grid 与 angular 一起使用,我想对其应用外部过滤器。 documentation 显示了 doesExternalFilterPass 函数的示例:

function doesExternalFilterPass(node) {
  switch (ageType) {
    case 'below30': return node.data.age < 30;
    ...
    default: return true;
  }
}

它基本上使用原始数据来过滤行。当我使用列 valueGetter/filterValueGetter 函数修改值时,我希望外部过滤器根据这些函数的 return 值进行过滤,但我还没有找到执行此操作的正确方法。

我可以通过调用
获得我想要的值 this.gridOptions.api.getValue(columnId, node);
(在后台调用 valueGetter)而不是
node.data[columnId]
但我没有找到任何这样做的例子。

所以我想知道在 doesExternalFilterPass 中调用 valueGetter 函数的正确方法,或者其他人是如何解决这个问题的。

(当您有甚至不包含在数据对象中的行时,这一点尤其重要。当列值通过 valueGetter/filterValueGetter 函数计算时就是这种情况,例如通过添加另外两个列。)

除了使用 valueGetter,您还可以将自定义字段添加到数据模型中,在将数据馈送到网格之前计算该字段。您将需要预处理数据,然后在列定义和外部过滤器中使用这个新字段。