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

时间:2018-06-26 03:05:31

标签: angularjs angular-ui-grid

我有一个基本网格,其中包含几列范围为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

1 个答案:

答案 0 :(得分:1)

与您一样,将函数移出列定义。

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