Сортировка столбца сетки пользовательского интерфейса, содержащего Угловой фильтр
Я недавно начал использовать 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 состояние, если рассматривать сортировку. Но я получаю больше договоренностей.
1 ответ
Ты можешь использовать sortDirectionCycle
убрать третье состояние сортировки.
columnDefs: [
{ field: 'name', sortDirectionCycle: [uiGridConstants.ASC, uiGridConstants.DESC] },
{ field: 'gender', sortDirectionCycle: [uiGridConstants.ASC, uiGridConstants.DESC] },
{ field: 'company', enableSorting: false }
]
Из документа. При нажатии на заголовок столбца направление сортировки будет циклически изменяться по возрастанию, затем по убыванию, а затем обратно к несортированным. Вы можете переставить этот цикл или пропустить его часть, установив параметр sortDirectionCycle columnDef. Для более подробной информации проверьте эту ссылку sortDirectionCycle