2017-06-22 49 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

它不會編譯動態值。 –