Angular 按键排序 ng-repeat

Angular order by key ng-repeat

我有下一张地图:

{
    1: [
        "John": 123,
        "Doe": 234 
    ],
    2: [
        "John": 456,
        "Doe": 345   
    ]
    //and so on...
}

我必须使用按索引排序的 ng-repeat 显示它们,然后使用按值排序的内部 ng-repeat 显示它们:

  • 2
    • Doe 234
    • John 123
  • 1
    • John 456
    • Doe 345

我试图找到解决方案,但没有找到任何答案。

使用angular-underscore

按键点餐更方便
<div ng-repeat="item in pairs(obj) | orderBy:first:true"> Key: {{ item[0] }}; Value: {{item[1]}}</div>

在您的情况下,它可能如下所示:

HTML:

<ul ng-repeat="obj in pairs(data) | orderBy:first:true">

  <li>{{ obj[0] }}</li>

  <ul ng-repeat="item in pairs(obj[1]) | orderBy:last:true">
       <li> {{ item[0] }} {{item[1]}}</li>
  </ul>

</ul>

JS:

$scope.data = {
  1:{
     'John':123,
     'Doe':234
    },
  2:{
     'John':456,
     'Doe':345
    }};

working Plunker with your case

要颠倒顺序只需将 orderBy:first:true 更改为 orderBy:first:false