使用过滤器时ng-repeat absolute $ index

时间:2014-08-05 23:11:55

标签: javascript angularjs angularjs-ng-repeat

我正在尝试使用过滤器获取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?

1 个答案:

答案 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;
  };
}