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)
条件,但这不起作用。
我不太确定我还能怎么做,我无法在文档中找到任何内容,也无法通过谷歌搜索找到它。
如前所述,将函数移出列定义。
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}}
],
...
};
我有一个基本网格,其中有几列是范围,即 10 - 50、0 - 9 等,我在其中一个 columnDef 上编写了自定义过滤器;
filter: {
condition: function(searchTerm, cellValue) { ... }
}
滤镜效果很好,但我想把它拆下来重新使用,只是我不知道怎么做。
我尝试在控制器中将其定义为 function rangeFilter(...)
和 vm.rangeFilter = rangeFilter
,然后将其分配给 grid.appScope.filterRange(searchTerm, cellValue)
条件,但这不起作用。
我不太确定我还能怎么做,我无法在文档中找到任何内容,也无法通过谷歌搜索找到它。
如前所述,将函数移出列定义。
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}}
],
...
};