我有一个 ui-grid,我的一列是一个可以使用选择选项过滤的字段。在这个例子中,我称之为"颜色"。这是列 def:
columnDefs: [
{
field: 'colour',
cellTemplate: 'colour.cellTemplate.html',
filter: {
selectOptions: ['orange', 'blue', 'red', 'yellow', 'purple'].map(c =>({value:c, label:c})),
type: uiGridConstants.filter.SELECT
}
}
]
现在,这按颜色过滤我的网格并且效果很好。但是,我想添加一个名为 not blue
的字段,然后返回颜色不是蓝色的每一行。我将如何实现这一点?如果我只添加一个名为 not blue
的选项,那么它将只返回颜色值为 not blue
的每个字段,而这些字段都不是。有什么想法吗?
免责声明:我对 UI-grid 很陌生,我试图阅读文档以找到一些帮助,但无法管理它,如果我错过了一些明显的东西,很抱歉
我找到了解决方案。有一个参数叫做条件,可以像这样实现:
columnDefs: [
{
field: 'colour',
cellTemplate: 'colour.cellTemplate.html',
filter: {
selectOptions: ['orange', 'blue', 'red', 'yellow', 'purple', 'not blue'].map(c =>({value:c, label:c})),
type: uiGridConstants.filter.SELECT,
condition: (filter, cellValue) => {
if (filter === 'not blue') {
return cellValue !== 'blue';
}
return cellValue === filter;
}
}
}
]