ng-if, есть ли способ прекратить применять условие к последнему элементу массива во время цикла по массиву? - PullRequest
2 голосов
/ 10 мая 2019

Извините, если мой вопрос недостаточно ясен.Я просто извлекаю часть объекта json, который имеет два отдельных объекта с двумя разными именами.Каждый из них имеет массив объектов с некоторыми данными.Одной из переменных в объекте являются месяцы, которые являются числом.

Я хочу напечатать их как 6-11 и 12-23, если 6 и 12 - месяцы в нулевом индексируемом объекте, а 12 - месяцы в первом индексируемом объекте.Вот HTML-код.

<td class="label"> 
       <span ng-if="row.id=="ABC">{{tier.months}} - 
                 {{row.tiers[$index+1].months-1}} </span>
       <span ng-if="row.id=="XYZ">{{tier.months}} </span> 
</td>

Но это дает мне последний элемент как 60 - -1 вместо 60. Я попробовал

<span ng-if="row.id=="'ABC' && ($index == parseInt(row.tiers.length-1))"> 
 {{tier.months}} - {{row.tiers[$index+1].months-1}} </span>

Это не сработало.

Любойпредложения будут высоко оценены.

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Как и $index, AngularJS также выставляет $last внутри ng-repeat.Его значение равно true, если текущий элемент в итерации является последним элементом в массиве, в противном случае это false.Попробуйте использовать его вместо этого.

0 голосов
/ 10 мая 2019

Вы можете использовать ng-repeat-start и ng-repeat-end и можете получить доступ к $index в ng-repeat-end. Надеюсь, что это поможет вам.

...