angularjs - AngularJS ui-grid 重新使用自定义过滤器
问题描述
我有一个基本网格,其中包含几列范围,即 10 - 50、0 - 9 等,并且我在其中一个 columnDefs 上编写了自定义过滤器;
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}}
],
...
};
推荐阅读
- google-apps-script - 在 Google 表格的指定表格中运行脚本
- java - 无法连接到 MariaDB (java)
- android - 如何解决 Android 中的“无法解析方法 getAssets()”
- ansible - 稳定 | 条件检查“item.stat.exists”失败
- office365 - 从 Graph API“您没有所需的权限”创建 Planner 计划
- mysql - 为 MySQL 中查询返回的每一行调用一个查询
- c - 用 C 语言制作的字典,但会误导搜索
- python - 将两个数据框放在excel的同一张纸上
- c++ - 什么时候使用的函数不会出现在目标文件符号表中
- swift - 无法使用 TableView 将类型“[String]”的值转换为预期的参数类型“String”