ng-table и getData
Вопрос в следующем.
Сделал я табличку с группами вроде этой: http://plnkr.co/edit/M8BcStInfSaSEaq6UVN7?p=preview Но вылезла проблема, что при данных в сотни ячеек начинаются тормоза при поиске, сортировке, сворачивании-разворачивании групп. Решил сделать изменение данных через $defer (до этого было через dataset как в примере). Без групп работает, с группами - никак. Смотрел в отладчике - в первом случае NgTableParam.data уже сортирована согласно group. $scope.tableParams = new NgTableParams({ group: 'Type', page: 1, count: 5, groupOptions: { isExpanded: false } }, { total: $scope.globalVars.broodLog.length, getData: function ($defer) { this.data = $defer.sorting() ? $filter('orderBy')($scope.globalVars.broodLog, $defer.orderBy()) : $scope.globalVars.broodLog; // как здесь сделать структуру данных с группами??? } }); В общем, у кого какие идеи как ускорить сортировку, поиск. |
-VenoM-,
Пагинация - одно из возможных решений тормозов. Вместо того чтобы рендерить 100500 DOM объектов, отрисовывают только нужное количество на странице (10,25, ...). Далее переход по страницам и обновление дерева. $defer подходит в случае асинхронного получения данных. В Вашем случае, как я понял, данные приходят сразу все. Смотреть сюда |
Да, это самый такой вариант. Но вопрос в том, что pagination если в лоб применяется к списку groups, а не ко всем объектам таблички.
Допустим, в моём примере count: 5, Т.е. на каждой страничке будет по 5 групп. Но на содержимое групп count уже не реагирует. В общем, попытаюсь парсить страницы в ручном режиме, ибо примеров подобных не находил. |
Часовой пояс GMT +3, время: 16:44. |