我正在尝试使用过滤器获取ng-repeat的绝对$ index。例如,我有一个这样的数组:
$scope.notes = [
{
name: 'note 1',
value: '1'
},
{
name: 'note 2',
value: '2'
},
{
name: 'note 3',
value: '3'
},
{
name: 'note 4',
value: '4'
}
];
如果不应用过滤器,$ index引用数组中每个元素的索引,我使用$ index来表示数组。
note in notes | filter:filterTerm track by $index
当我使用上面的表达式时,$ index会针对新的子数组进行更新。是否有可能得到绝对的$ index?
答案 0 :(得分:2)
这里没有'绝对'$ index。过滤器根据您传入的数组和过滤条件返回一个新数组。
了解如何创建自己的自定义过滤器可以让您更容易理解:
app.filter('myfilter',function()
{
return function( items, filterArg) {
var filtered = [];
angular.forEach(items, function(item) {
if(item.checkSomething(filterArg) {
filtered.push(item);
}
});
return filtered;
};
}