获取ngTableParams的常用排序功能不适用于非分组表

时间:2014-11-04 07:41:03

标签: javascript angularjs sorting grouping ngtable

我在angularJS中使用ngTable创建了一个应用程序,该应用程序有两个表,一个表使用分组功能和排序,另一个表作为普通表而没有分组,只需要排序,应用程序工作正常,但排序不适用于没有分组功能的表。

由于我使用了两个表,并且都使用了排序功能,因此我提供了一个获取ngTableParams对象的常用方法,如下所示,但不幸的是,排序不适用于没有分组的第一个表,具有分组功能排序的第二个表正在运行。

Working demo

// 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);
           }
       });
} 

任何人都可以告诉我一些解决方案吗

1 个答案:

答案 0 :(得分:2)

在第一个表中,您需要迭代$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>

工作plunk