AngularJS ui-网格重新使用自定义过滤器

AngularJS ui-grid re-using a custom filter

我有一个基本网格,其中有几列是范围,即 10 - 50、0 - 9 等,我在其中一个 columnDef 上编写了自定义过滤器;

filter: {
  condition: function(searchTerm, cellValue) { ... }
}

滤镜效果很好,但我想把它拆下来重新使用,只是我不知道怎么做。

我尝试在控制器中将其定义为 function rangeFilter(...)vm.rangeFilter = rangeFilter,然后将其分配给 grid.appScope.filterRange(searchTerm, cellValue) 条件,但这不起作用。

我不太确定我还能怎么做,我无法在文档中找到任何内容,也无法通过谷歌搜索找到它。

这是它的实际应用; http://next.plnkr.co/edit/mbtXzfWqBg8FIALu

如前所述,将函数移出列定义。

function rangeFilter() {
    ...
}

并在列定义中传递对函数的引用。

vm.gridOptions = {
    ...
    columnDefs: [
      // default
      { field: 'name' },
      { field: 'range', cellFilter: 'range', filter: {condition: rangefilter}},
      // I want to reuse the same filter as 'range' for this column somehow...
      { field: 'anotherRange', cellFilter: 'range', filter: {condition: rangefilter}}
    ],
    ...
  };

Plunker