2016-04-16 1 views
5

J'ai créé une application en utilisant ng-Table, l'application fonctionne bien qui avait généré une table en utilisant ng-Table. Le problème auquel je suis confronté est que le tri des tables ne fonctionne pas. Mon code est donné ci-dessousng-Table de tri ne fonctionne pas bien

HTML:

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

et mon code js:

var app = angular.module('myApp', ['ngTable']). 
controller('mycontroller', function($scope, NgTableParams) 
{ 
var data = [{name: "Moroni", age: 50}, 
      {name: "Tiancum", age: 43}, 
      {name: "Jacob", age: 27}, 
      {name: "Nephi", age: 29}, 
      {name: "Enos", age: 34}, 
      {name: "Tiancum", age: 43}, 
      {name: "Jacob", age: 27}, 
      {name: "Nephi", age: 29}, 
      {name: "Enos", age: 34}, 
      {name: "Tiancum", age: 43}, 
      {name: "Jacob", age: 27}, 
      {name: "Nephi", age: 29}, 
      {name: "Enos", age: 34}, 
      {name: "Tiancum", age: 43}, 
      {name: "Jacob", age: 27}, 
      {name: "Nephi", age: 29}, 
      {name: "Enos", age: 34}]; 

$scope.tableParams = new NgTableParams({ 
    sorting: { 
     name: 'asc'  
    } 
}, { 
    getData: function($defer, params) { 
     $defer.resolve(data); 
    } 
}); 
}); 

EST-IL MAL QUOI QUE CE SOIT?

Répondre

3

Cela fonctionnera, vous devez ajouter $ filter pour vos données.

var app = angular.module('myApp', ['ngTable']). 
controller('mycontroller', function($scope, NgTableParams,$filter) 
{ 
var data = [{name: "Moroni", age: 50}, 
      {name: "Tiancum", age: 43}, 
      {name: "Jacob", age: 27}, 
      {name: "Nephi", age: 29}, 
      {name: "Enos", age: 34}, 
      {name: "Tiancum", age: 43}, 
      {name: "Jacob", age: 27}, 
      {name: "Nephi", age: 29}, 
      {name: "Enos", age: 34}, 
      {name: "Tiancum", age: 43}, 
      {name: "Jacob", age: 27}, 
      {name: "Nephi", age: 29}, 
      {name: "Enos", age: 34}, 
      {name: "Tiancum", age: 43}, 
      {name: "Jacob", age: 27}, 
      {name: "Nephi", age: 29}, 
      {name: "Enos", age: 34}]; 

$scope.tableParams = new NgTableParams({ 
    sorting: { 
     name: 'asc'  
    } 
}, { 
    getData: function($defer, params) { 
     data = $filter('orderBy')(data, params.orderBy()); 
     $defer.resolve(data); 
     //$defer.resolve(data); 
    } 
}); 
}); 
+0

Merci beaucoup ... Maintenant ça marche! –

1

Essayez cette

<table ng-table="tableParams" class="table"> 
    <tr ng-repeat="user in $data | orderBy:'-age'""> 
     <td data-title="'Name'"> 
      {{user.name}} 
     </td> 
     <td data-title="'Age'"> 
      {{user.age}} 
     </td> 
    </tr> 

OU

<table class="table"> 
    <tr> 
     <th>Name</th> 
     <th>Age</th> 
    </tr> 
    <tr ng-repeat="user in $data | orderBy:'-age'"> 
     <td>{{user.name}}</td> 
     <td>{{user.age}}</td> 
    </tr> 
    </table> 
1

essayez ceci. dans ngTable document en utilisant de cette façon pour lier des données à la table.

$scope.tableParams = new NgTableParams({ 
sorting: { 
    name: 'asc'  
} 
}, { 
dataset: data 
}); 
+0

J'ai essayé de cette façon, mais ça ne marche toujours pas ..... –

+0

oh non, ça marche !!! Je me trompe –