Общая функция сортировки для получения ngTableParams не работает для таблицы без группировки

Я создал приложение в angularJS с ngTable. Приложение имеет две таблицы, одна таблица использует функции группировки с сортировкой, а другая - как обычную таблицу без группировки и нуждается только в сортировке. Приложение работает нормально, но сортировка не работает для таблица, не имеющая функции группировки.

Поскольку я использую две таблицы, и обе используют функцию сортировки, я сделал общий метод для получения объекта ngTableParams, как показано ниже, но, к сожалению, сортировка не работает для первой таблицы, которая не имеет группировки, для второй таблицы с функцией группировки сортировка работающий.

Рабочая демонстрация

// NOT WORKING
$scope.tableParamsOne = getNgTableParams('name', 'desc' ,'', $scope.myDataOne); 

// WORKING
$scope.tableParamsTwo = getNgTableParams('name', 'desc' ,'name', $scope.myDataTwo); 


function getNgTableParams(sortingField, sortingOrder, groupByField, tableDatas) 
{
  return new ngTableParams({
           sorting: {
               sortingField: sortingOrder
           }
       }, {
           groupBy: groupByField,
           getData: function($defer, params) {
               var orderedData = $filter('orderBy')(tableDatas, params.orderBy());
               $defer.resolve(orderedData);
           }
       });
} 

может кто-нибудь, пожалуйста, скажите мне какое-нибудь решение для этого


person Alex Man    schedule 04.11.2014    source источник
comment
Формат вашего вопроса великолепен, но вам следует провести больше исследований, прежде чем публиковать вопрос.   -  person Kostia Mololkin    schedule 04.11.2014


Ответы (1)


в первой таблице вам нужно перебрать $data

<table ng-table="tableParamsOne" class="table">
    <tr ng-hide="false" ng-repeat="user in $data">
      <td sortable="name" data-title="'Name'">
        {{user.name}}
      </td>
      <td sortable="age" data-title="'Age'">
        {{user.age}}
      </td>
    </tr>
  </table>

работает переход

person Kostia Mololkin    schedule 04.11.2014