Сортировка столбца сетки пользовательского интерфейса, содержащего Угловой фильтр

Я недавно начал использовать Angular UI-Grid. Я не очень хорошо разбираюсь во внутренних делах библиотеки.

У меня есть ui-grid столбец, который требуется для отображения процентов. Так что я добавил следующий фильтр к моему app и использовал его вместе с ui-gridcellFilter имущество.

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

Другие вопросы по тегам