我最近开始使用Angular ui-grid。我不太熟悉图书馆的内部。
我有一个ui-grid
列需要显示百分比。我将以下过滤条件添加到app
,并将其与ui-grid
cellFilter
属性一起使用。
module.filter('percentage', function () {
return function (input) {
if (!input) {
return '';
} else {
return input + '%';
}
};
})
这工作正常,但在对此列进行排序时。排序工作意外。假设我有3行值100,200,300
。我希望它只能有两个排序状态100,200,300
和300,200,100
。但是,如果我一直点击此列的标题,我会将第三个状态设为200, 300, 100
或100, 300,200
。我甚至不确定这种状态的模式是什么。
如果我是对的,则角度过滤器仅适用于views
,并且不会影响该字段的模型。所以我认为添加filter
不会对排序产生影响。
除此之外,两个预期的排序(ASCENDING,DESCENDING)看起来很完美,唯一的问题是第三个出现。我该如何解决这个问题。
我错过了任何实现吗?请帮我解决这个问题。
编辑:字符串列也会出现此问题。根据我的理解,只考虑排序,只能有一个ASCENDING和一个DESCENDING状态。但是我得到了更多的安排。
答案 0 :(得分:1)
您可以使用sortDirectionCycle
删除第三种排序状态。
columnDefs: [
{ field: 'name', sortDirectionCycle: [uiGridConstants.ASC, uiGridConstants.DESC] },
{ field: 'gender', sortDirectionCycle: [uiGridConstants.ASC, uiGridConstants.DESC] },
{ field: 'company', enableSorting: false }
]
从文档中,单击列标题时,排序方向将循环升序,然后降序,然后返回未排序。您可以通过设置sortDirectionCycle columnDef选项重新排列此循环或跳过部分循环。有关详细信息,请查看此链接sortDirectionCycle