2017-06-22 44 views
0

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

原始代码:

<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> 
+0

会有与你现在正在尝试的方法没有什么用。但是您将在分页元素中对'pagination-id'进行硬编码。这里更好的硬编码。 –

回答

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是一个数据属性。如果这实际上是真的,那么上述将工作正常。如果,另一方面它是一个角度的指令,那么最有可能的值由角计算,在这种情况下,这将是合适的解决方案:

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

如果我尝试获取此语法错误: 语法错误:令牌'{'是表达式[uniqueId {{]从[{4}]开始的第9列处的意外令牌。 – mediaguru

+1

是的。问题在于dir-pagination。我认为你使用它@mediaguru –

+1

它不会编译动态值。 –