首页 > 解决方案 > AngularJS ui-grid 重新使用自定义过滤器

问题描述

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

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

过滤器工作得很好,但我想把它去掉并重新使用它,只是我不知道怎么做。

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

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

这是它的一个小动作;http://next.plnkr.co/edit/mbtXzfWqBg8FIALu

标签: angularjsangular-ui-grid

解决方案


正如您所做的那样,将函数移出列定义。

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}}
    ],
    ...
  };

普朗克


推荐阅读