2015-12-06 148 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