在angularjs ng-repeat指令中对对象进行排序

时间:2016-04-22 16:41:00

标签: javascript angularjs

我有一个对象

Object {1: "CMAR0002", 2: "CMAR0003", 4: "CMAR0001"}

我在ng-repeat指令中使用此对象,但我想按值对其进行排序。但问题是角度orderBy过滤器需要对象数组。但我这里只有非常简单的对象;)

提前致谢

2 个答案:

答案 0 :(得分:1)

Angular ng-repeat documentation

  

可以让ngRepeat迭代属性...

     

但是,与数组迭代相比存在一些限制,例如“内置过滤器 orderBy 过滤器不适用于对象,并且如果与一个“

如果您遇到任何这些限制,建议的解决方法是将您的对象转换为一个数组,该数组在提供给ngRepeat之前按照您喜欢的顺序排序。您可以使用toArrayFilter等过滤器执行此操作,也可以自行对该对象执行$ watch。

无论如何,你可以尝试为此实现自己的过滤器,但它会非常难看,需要付出很多努力(可能一无所获)。

希望,它会帮助你!

答案 1 :(得分:-1)

这样做:

<li ng-repeat="(key, value) in Object | orderBy: key">
    {{ key }} - {{ value }}
</li>

小提琴:http://jsfiddle.net/oo4cb9xf/1/