ngGrid сортирует весь набор результатов
Я хотел бы на ngGridSorted
событие для сортировки всего набора результатов (не только страницы) с помощью функции сортировки, по которой была нажата кнопка. Есть простой способ сделать это? Я не видел хорошего примера того, как сортировать что-либо, кроме страницы, на которой сейчас находится пользователь.
1 ответ
Фактически, вы просто можете использовать опцию подкачки на стороне сервера, фактически не имея серверного кода.
Пример из демоверсий ng-grid также просто загружает большой файл json.
Функция, которую вам нужно переписать:
$scope.getPagedDataAsync = function (pageSize, page, searchText)
Вместо загрузки файла вы можете поместить здесь логику, которая имеет возможность поиска и склейки массива.
Нет необходимости выполнять асинхронные операции только потому, что у функции есть асинхронное имя.
Библиотека с функциями манипулирования массивами, такими как Lo-Dash
или же Underscore
здесь очень помогает
Обновить:
Так как я узнал, что демо не включает сортировку (Doh!), Я сделал вам этот Plunker, который является расширенной версией официальной демонстрации Pagination на стороне сервера, которая также имеет сортировку и не серверный массив.
Код немного сложен. Посмотрите, понимаете ли вы это или вернетесь с вопросами.
Алгоритм сортировки не очень оптимизирован. На самом деле я взял его отсюда (еще раз спасибо, Дэвид!)