对数组数组进行ng-repeat,orderBy为子数组索引

时间:2015-06-25 20:03:20

标签: angularjs angularjs-orderby

假设我有这个对象:

var rows = [
    [1, 2, 3, 4],
    [11, 222, 3333, 4444]
];

鉴于此,以及此模板:

<tr ng-repeat="row in rows | orderBy ????">
    <td ng-repeat="cell in row">{{ cell }}</td>
</tr>

...如何通过每行的第二个“列”(给定ng-repeat元素的索引1处的值)订购row

我是否正确Angular不支持此案例 - 无需编写自定义排序功能? (我只是原型设计,所以使用ng-init来定义范围变量而不是创建控制器。)

2 个答案:

答案 0 :(得分:3)

实际上确实如此。您可以按功能创建自定义订单。

https://github.com/Sylius/Sylius/issues/2931

<div ng-repeat="row in rows | orderBy:secondIndex">
    {{row}}
</div>

//In controller
$scope.secondIndex = function(arr){
    return arr[1];
}

答案 1 :(得分:2)

您应该使用orderBy:'1'

<tr ng-repeat="row in rows | orderBy:'1'">
   <td ng-repeat="cell in row">{{ cell }}</td>
</tr>

<强> Demo