Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在ng repeat中使用orderBy的自定义订单_Angularjs_Angularjs Orderby - Fatal编程技术网

Angularjs 在ng repeat中使用orderBy的自定义订单

Angularjs 在ng repeat中使用orderBy的自定义订单,angularjs,angularjs-orderby,Angularjs,Angularjs Orderby,我有这样的物体: students = {name: 'Aa_Student', class: 'A_Class'}, {name: 'Ab_Student', class: 'A_Class'}, {name: 'Ac_Student', class: 'B_Class'}, {name: 'Ba_Student', class: 'B_Class'}, {name: 'Bb_Student', class

我有这样的物体:

students = {name: 'Aa_Student', class: 'A_Class'},
           {name: 'Ab_Student', class: 'A_Class'},
           {name: 'Ac_Student', class: 'B_Class'},
           {name: 'Ba_Student', class: 'B_Class'},
           {name: 'Bb_Student', class: 'C_Class'},
           {name: 'Bc_Student', class: 'C_Class'}
  Name              Class
-----------------------------
Ac_Student         B_Class
Ba_Student         B_Class
Aa_Student         A_Class
Ab_Student         A_Class
Bb_Student         C_Class
Bc_Student         C_Class
假设学生对象被洗牌。我使用ng repeat来显示数据。我想按自定义顺序对对象进行排序

例如,我想显示如下数据:

students = {name: 'Aa_Student', class: 'A_Class'},
           {name: 'Ab_Student', class: 'A_Class'},
           {name: 'Ac_Student', class: 'B_Class'},
           {name: 'Ba_Student', class: 'B_Class'},
           {name: 'Bb_Student', class: 'C_Class'},
           {name: 'Bc_Student', class: 'C_Class'}
  Name              Class
-----------------------------
Ac_Student         B_Class
Ba_Student         B_Class
Aa_Student         A_Class
Ab_Student         A_Class
Bb_Student         C_Class
Bc_Student         C_Class
所以基本上,我想按学生的班级排序,但它是B_班,然后是A_班,然后是C_班。另外,我想按学生姓名的字母顺序排列。我该怎么做

HTML:


要将
orderBy
设置为对象的属性,只需在标记中引用该属性名称:

ng-repeat="student in students |orderBy:'name' | orderBy:'class'"

您好,您可以创建自定义排序筛选器,请参见此处

html:

  <p ng-repeat="s in students |customSorter:'class'">{{s.name}} - {{s.class}} </p>
      </div>

知道这是旧的,但可能对其他人有用

您还可以创建一个简单的自定义排序函数。“不完全是过滤器”:

然后像你想的那样使用:

<table>
<tr ng-repeat="student in students | orderBy:customOrder">
...
</tr>

...

有两种方法可以做到这一点(1)自定义过滤器(2)在控制器上缩短数据level@dhavalcengg所以我需要使用过滤器?请注意
$scope.studens
(缺少一个t)中的打字错误。我应该在控制器中写什么?谢谢,但我想先订购B_类。这不是字母顺序。这正是我要找的。谢谢。您好,
angular.forEach(items,function(item){filtered.push(item);})我觉得这段代码没有必要,难道说
var filtered=items还不够吗
$scope.customOrder = function (item) {
        switch (item) {
            case 'A_Class':
                return 2;

            case 'B_Class':
                return 1;

            case 'C_Class':
                return 3;
        }
    };
<table>
<tr ng-repeat="student in students | orderBy:customOrder">
...
</tr>