angularjs:如何访问ng-repeat的当前元素

时间:2012-09-03 12:58:39

标签: angularjs

我需要能够在指令中访问ng-repeat的当前元素。请参阅jsfiddle: http://jsfiddle.net/terebentina/TVEnN/

我期待控制台中的哈希值(如{width:100,height:100}),但我不确定该怎么做。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:14)

这是一个有效的小提琴(并输出你所期望的)。

http://jsfiddle.net/TVEnN/2/

有关ng-repeat的注意事项:

  1. ng-repeat总是为数组/对象中的每个元素创建一个新的SCOPE。
  2. 当前元素在此新范围中可用作ng-repeat中定义的元素的名称。例如:如果您定义了ng-repeat = "page in pages",则当前元素在作为页面的范围内可用。如果您定义了ng-repeat = "(key,value) in object",则keyvalue都可用于此新范围。
  3. 数组中的当前位置可用$index
  4. 由于ng-repeat创建了一个新范围,并且所有范围都从其父级继承,因此上述示例中的pages仍可在此新范围内使用,这意味着您可以执行$scope.pages.length之类的操作如果你需要。

答案 1 :(得分:0)

除了@ ganaraj的回答:

使用过滤器时存在一个陷阱。通过使用过滤器,例如按字母顺序排列项目,$index和。 key变量不再代表项目数组中项目的实际位置,而是它在ng-repeat - 块中的当前位置。

请参阅this link