返回除一种类型之外的所有类型的 UI 网格选择筛选器



我有一个 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;
            }
        }
    }
]

最新更新