2016-04-16 18 views
5

Ich habe eine Anwendung mit ng-Tabelle erstellt, die Anwendung funktioniert gut, die Tabelle mit ng-Tabelle generiert hatte. Das Problem, mit dem ich konfrontiert bin, ist, dass die Tischsortierung nicht funktioniert. Mein Code ist untenng-Tabelle Sortierung funktioniert nicht gut

HTML als gegeben:

<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> 

und meine js Code:

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

GIBT ES ETWAS FALSCH?

Antwort

3

Dies funktioniert, Sie müssen $ Filter für Ihre Daten hinzufügen.

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

Vielen Dank ..... Jetzt funktioniert es! –

1

Versuchen Sie, diese

<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> 

ODER

<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

versuchen Sie dies. in ngTable-Dokument mit dieser Methode zum Binden von Daten an die Tabelle.

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

Ich habe diesen Weg versucht, aber es funktioniert immer noch nicht ..... –

+0

oh nein, es funktioniert !!! Ich bin falsch –