ngTable not sorting

ngTable not sorting

本文关键字:sorting not ngTable      更新时间:2023-09-26

im使用ngTable。排序不起作用。

分页工作得很好,它显示了我需要的所有数据。但我不能排序

我正在使用$data(我不知道它的用途),但仍然无法排序。

我的html:

<div class="panel-heading">
  <table ng-table="vm.tableParams">
    <tbody>
      <tr ng-repeat="event in $data">
        <td data-title="'Nombre'" sortable="'name'">  {{ event.phone ? "Tex1" : Text2 }}</td>
        <td data-title="'Dia Entero'" sortable="'entero'">{{ event.allDay ? '√' : 'X'  }}</td>
        <td data-title="'F. Inicio'" sortable="'inicio'">{{ event.start | date:'dd-MM-yyyy' }}</td>
        <td data-title="'F. Fin'" sortable="'fin'">   {{ event.end | date:'dd-MM-yyyy' }}</td>
        <td data-title="'Telf.'" sortable="'telf'">  {{ event.phone ? event.phone : '--' }}</td>
      </tr>
    </tbody>
  </table>
</div>

我的js:

   // My data
   [{  
      "title":"Cerrado",
      "start":"2015-12-24T23:00:00.000Z",
      "allDay":true,
      "backgroundColor":"#f05050",
      "borderColor":"#f05050"
   },
   {  
      "title":"Abierto",
      "start":"2016-04-10T04:00:00.000Z",
      "end":"2016-04-10T08:00:00.000Z",
      "backgroundColor":"#43d967",
      "borderColor":"#43d967"
   },
   {  
      "title":"Mi Guardia",
      "start":"2015-12-24T01:00:00.000Z",
      "end":"2015-12-24T08:00:00.000Z",
      "backgroundColor":"#5d9cec",
      "borderColor":"#5d9cec"
   },
   {  
      "title":"super farmacias",
      "phone":"677889966",
      "address":"Calle badajoz 200",
      "start":"2016-01-06T02:00:00.000Z",
      "end":"2016-01-06T09:00:00.000Z",
      "backgroundColor":"#dde6e9",
      "borderColor":"#dde6e9",
      "textColor":"#555"
   }]
var data = vm.events;
vm.tableParams = new ngTableParams({
  page: 1,        // show first page
  count: 8,        // count per page
  sorting: {
    name: 'asc'
  }
},
{
  total: data.length,
  counts: [],
  getData: function($defer, params) {
    // use build-in angular filter
    var orderedData = params.sorting() ?
      $filter('orderBy')(data, params.orderBy()) :
      data;
    $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
  }
});

我已经尝试了两个小时,用了很多例子,将$data改为vm.values,并创建了其他变量和内容。

知道排序被破坏的原因吗?

感谢

检查数据后,您必须修改HTML代码sortable =对象键。因为当您使用ng-table对表中的某些数据进行排序时,它是基于表中显示的数据
在这种情况下,它将是您刚刚发布的数据。在您的数据中,您没有一个名为nameentero等的字段。因此,排序函数不适用于您。

 <tr ng-repeat="event in $data">
    <td data-title="'Nombre'" sortable="'title'">  {{ event.phone ? "Tex1" : Text2 }}</td>
    <td data-title="'Dia Entero'" sortable="'allDay'">{{ event.allDay ? '√' : 'X'  }}</td>
    <td data-title="'F. Inicio'" sortable="'start'">{{ event.start | date:'dd-MM-yyyy' }}</td>
    ...
 </tr>

通常用于排序,reverseSort功能很方便,请尝试此功能对进行排序

<th><a href="#" ng-click="orderByField='fieldName'; reverseSort=!reverseSort">Field Name</a></th>