ngGrid сортирует весь набор результатов

Я хотел бы на ngGridSorted событие для сортировки всего набора результатов (не только страницы) с помощью функции сортировки, по которой была нажата кнопка. Есть простой способ сделать это? Я не видел хорошего примера того, как сортировать что-либо, кроме страницы, на которой сейчас находится пользователь.

1 ответ

Решение

Фактически, вы просто можете использовать опцию подкачки на стороне сервера, фактически не имея серверного кода.

Пример из демоверсий ng-grid также просто загружает большой файл json.

Функция, которую вам нужно переписать:

 $scope.getPagedDataAsync = function (pageSize, page, searchText)

Вместо загрузки файла вы можете поместить здесь логику, которая имеет возможность поиска и склейки массива.

Нет необходимости выполнять асинхронные операции только потому, что у функции есть асинхронное имя.

Библиотека с функциями манипулирования массивами, такими как Lo-Dash или же Underscore здесь очень помогает

Обновить:

Так как я узнал, что демо не включает сортировку (Doh!), Я сделал вам этот Plunker, который является расширенной версией официальной демонстрации Pagination на стороне сервера, которая также имеет сортировку и не серверный массив.

Код немного сложен. Посмотрите, понимаете ли вы это или вернетесь с вопросами.

Алгоритм сортировки не очень оптимизирован. На самом деле я взял его отсюда (еще раз спасибо, Дэвид!)

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