2015-12-06 75 views
0

我想那種我有AngularJS篩選排序圖(鍵,值)列表

{ 
    Student: 100, 
    Student1: 60, 
    Student2: 90, 
    } 
我使用的是表

列表,我需要通過他們的價值進行排序。它目前按鍵排序

<tr ng-repeat="(key, value) in ctrl.students" > 

      <td >{{key}}</td> 
      <td >{{value}}</td> 

    </tr> 

我不知道如何添加篩選,以確保它輸出的學生分數從最高到最低。

回答

2

基本上,您創建了一個學生名稱和學生成績的學生數組。然後通過使用ng-repeat來循環顯示學生數組,並按年級以降序顯示個別學生。 AngularJS orderBy example。該鏈接是使用ng-repeatorderBy的示例。

<tr ng-repeat="student in ctrl.students | orderBy: '-grade' " > 
    <td>{{student.name}}</td> 
    <td>{{student.grade}}</td> 
</tr> 

操縱數據,以便它可以進行排序是使用:

$scope.students = []; 
// someData is the data you received from database. 
angular.forEach(someData, function(value, key){ 
    $scope.students.push({ 
    name: key, 
    grade: value 
    }); 
}); 

和操作後,你的學生陣看起來就像這樣:

$scope.students = [ 
{name: student, grade: 100}, 
{name: student1, grade: 60}, 
{name: student2, grade: 90} 
] 
+0

它不與(重點工作,值) – user3100209

+0

@ user3100209鍵和值只是您創建的溫和變量,以便您在模板中使用。你可以隨意命名。 –

+0

我無法重新組織陣列,因爲我正在從數據庫中提取它 – user3100209