每个ng-repeat需要唯一的数据属性

时间:2017-06-22 20:37:41

标签: javascript angularjs angularjs-ng-repeat

我在ng-repeat中有一个数据属性,每次重复循环时都需要是唯一的。似乎可以在定义它的同一行中使用$ index,或者我会这样做。

原始代码:

 <div ng-repeat="x in vm.country_list | itemsPerPage:5 track by $index" pagination-id="uniqueId">
      {{x.country}}
 </div> 

期望的结果:

 <div ng-repeat="x in vm.country_list | itemsPerPage:5 track by $index" pagination-id="uniqueId0">
      USA
 </div>
 <div ng-repeat="x in vm.country_list | itemsPerPage:5 track by $index" pagination-id="uniqueId1">
      Canada
 </div>
 <div ng-repeat="x in vm.country_list | itemsPerPage:5 track by $index" pagination-id="uniqueId2">
      Mexico
 </div>  

1 个答案:

答案 0 :(得分:2)

您可以像定义$index

一样访问ng-repeat变量
<div ng-repeat="x in vm.country_list | itemsPerPage:5 track by $index" 
     pagination-id="uniqueId{{$index}}">
  {{x.country}}
</div> 

我们被告知假设pagination-id是数据属性。如果这确实是真的,那么上面的工作正常。另一方面,如果它是Angular指令,则很可能该值由Angular评估,在这种情况下,这将是适当的解决方案:

<div ng-repeat="x in vm.country_list | itemsPerPage:5 track by $index" 
     pagination-id="'uniqueId' + $index">
  {{x.country}}
</div>