orderBy over simple array?

时间:2013-11-20 23:11:34

标签: angularjs

我有一个这样的数组:

$scope.telcodes = ['44', '01', '221', '335'];

如何在这样的简单数组上使用orderBy来生成从01开始的有序列表?

我知道如何在包含对象的数组上执行此操作,但不知道如上所述的简单数组。

<li data-ng-repeat="telcode in telcodes | orderBy:????:false track by $index">

3 个答案:

答案 0 :(得分:4)

您可以在控制器中声明简单的proxy函数并使用它:

控制器:

$scope.proxy = function(x) { return x; }

HTML:

<tr ng-repeat="t in telcodes | orderBy: proxy">

但是,它会为您提供字符串比较(demo)。

要获得标准数字比较,请稍微修改proxydemo):

$scope.proxy = function(x) { return x * 1; }

答案 1 :(得分:3)

应该只需要

<tr ng-repeat="t in telcodes | orderBy>

答案 2 :(得分:2)

这很奇怪。

以下是我能提出的最短解决方案:http://plnkr.co/edit/WsofTTYIGa2OSuTsJCKd

<强>控制器

$scope.id = function (d) { return d; }; // return +d; if you want numeric sort.

<强>模板

<li ng-repeat="item in arr | orderBy:id:false">{{item}}</li>