在AngularJS中如何在排序后获取数组元素的新索引?

时间:2013-03-30 01:36:19

标签: angularjs angularjs-ng-repeat angularjs-orderby

这段代码很好地展示了我的问题:

JSfiddle - sorting table

重要部分:

<tr ng-repeat="result in results | orderBy:predicate" ng-class="classRow($index)">

$scope.classRow = function(i) {
    return $scope.results[i].size > 9000 ? 'highlight' : '';
}

正如您所看到的,即使重新排序数组,索引也始终从0到6,因此突出显示不随项目移动。

如何才能突出显示最初的项目?

2 个答案:

答案 0 :(得分:1)

您也可以内联执行此操作,因此无需控制器代码:

ng-class="{ highlight: result.size > 9000 }"

工作示例:http://jsfiddle.net/wEBnX/2/

答案 1 :(得分:0)

不是使用索引,而是将size属性直接传递给classRow()

<tr ng-repeat="result in results | orderBy:predicate" ng-class="classRow(result.size)">

$scope.classRow = function(size) {
    return size > 9000 ? 'highlight' : '';
}

工作示例:http://jsfiddle.net/WqbNS/