我有一个用作过滤器的自定义功能。如何获取当前元素的索引。
<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);
答案 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;
}
});