以角度获取当前过滤元素的索引

时间:2014-06-12 18:41:39

标签: angularjs angularjs-ng-repeat

我有一个用作过滤器的自定义功能。如何获取当前元素的索引。

<tr ng-repeat="(idx, line) in items | filter:inRange">....</tr>

//this is the filter
$scope.inRange = function(item) {
    //how to get the index here?
};

请注意,我不想使用indexOf

var idx = $scope.items.indexOf(item);

1 个答案:

答案 0 :(得分:2)

another answer on SO with the same kind of issue on filters

一样
  

过滤器不适用于数组中的单个项目,它们将整个数组转换为另一个数组。

当定义为过滤器时,inRange将接收整个items数组,而不是单个项目。

myModule.filter('inRange', function() {
    return function(items) {
        var filtered = [];
        angular.forEach(items, function(item, index) {
            // do whatever you want here with the index
            filtered.push(item);
        });
        return filtered;
    }
});