Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.11.2017, 19:40
Аспирант
Отправить личное сообщение для -VenoM- Посмотреть профиль Найти все сообщения от -VenoM-
 
Регистрация: 31.10.2016
Сообщений: 44

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-, 19.11.2017 в 21:45.
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2017, 10:22
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

-VenoM-,
Пагинация - одно из возможных решений тормозов. Вместо того чтобы рендерить 100500 DOM объектов, отрисовывают только нужное количество на странице (10,25, ...). Далее переход по страницам и обновление дерева. $defer подходит в случае асинхронного получения данных. В Вашем случае, как я понял, данные приходят сразу все. Смотреть сюда
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2017, 13:42
Аспирант
Отправить личное сообщение для -VenoM- Посмотреть профиль Найти все сообщения от -VenoM-
 
Регистрация: 31.10.2016
Сообщений: 44

Да, это самый такой вариант. Но вопрос в том, что pagination если в лоб применяется к списку groups, а не ко всем объектам таблички.
Допустим, в моём примере
count: 5,

Т.е. на каждой страничке будет по 5 групп. Но на содержимое групп count уже не реагирует. В общем, попытаюсь парсить страницы в ручном режиме, ибо примеров подобных не находил.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт HTML table в excel inetinf jQuery 0 24.09.2015 09:02
Событие scroll. Не цепляется строка таблицы karssen Javascript под браузер 7 15.07.2015 13:29
xml и css - тег table torsar (X)HTML/CSS 1 19.11.2012 19:21
ALTER TABLE ADD korner Серверные языки и технологии 3 13.07.2011 15:25
Чем занимаются JS-программеры. JSTalker Оффтопик 69 02.02.2011 10:18