【问题标题】:Getting actual array index from ng-repeat从 ng-repeat 获取实际的数组索引
【发布时间】:2015-05-14 17:08:06
【问题描述】:

假设我有以下数组

$scope.stuff = [
    {name: "one", order: 1},
    {name: "three", order: 3},
    {name: "two", order: 2}
]

然后我像这样使用ng-repeat 列出它:

<div ng-repeat="(key, data) in stuff | orderBy:'-order'">
    {{ data.name }} - {{ key }} - {{ $index }}
    <br />
</div>

然后会显示:

1 - 0 - 0
2 - 1 - 1
3 - 2 - 2

我希望能够知道 ACTUAL 数组中的哪个位置,这些项目来自$scope.stuff

所以我想知道3 实际上在$scope.stuff 的数组索引1 中,而不仅仅是我排序的ng-repeat 中的数组索引2 .

我是 Angular 新手,但有人有什么建议吗?

【问题讨论】:

  • 你用的是orderBy,也有必要吗?
  • @maddog 这是必要的,这就是为什么我觉得我过得很艰难

标签: javascript arrays angularjs


【解决方案1】:

我不认为 ng-repeat 有任何东西可以得到这个功能,但是我使用数组 indexof 方法来获取实际的索引。

 <div ng-repeat="(key, data) in stuff | orderBy:'-order'">
    {{ data.name }} - {{ key }} - {{ $index }} - {{stuff.indexOf(data)}}
    <br />
</div>

http://plnkr.co/edit/xjTZ6Y3xFqs6Bs3LGJk6

【讨论】:

  • angular的indexOf的浏览器兼容性如何?
  • 啊,好的,谢谢凯西尔。所以我想可以安全地假设我可以使用this 来确保它在 ie8 中工作?
  • 我不认为 ie8 实现了这个功能。 stackoverflow.com/questions/1744310/… 您可以按照该问题的答案进行修复。
猜你喜欢
  • 2014-09-29
  • 2015-03-15
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多