@IvanKalinin

Как заставить ng-repeat работать с конца массива, сохранив его порядок?

Есть специфический случай, когда нужно, чтобы ng-repeat работал с конца, а не сначала.
Т.е., скажем есть массив элементов (например ссылок на изображения) ['url1', 'url2, 'url3'....]
По умолчанию
<img ng-repeat="img in images track by $index" ng-src="{{img}}" />
добавит DOM каждого img по порядку, начиная с url1, используя нечто похожее на insertAfter(); Возможно ли заставить его работать в обратном направлении, чтобы он добавил сначала url3, потом url2 ПЕРЕД url3 и т.д. Т.е. сохранил порядок, но работал как insertBefore();
images.slice().reverse() в данном случае не работает, т.к. меняет порядок в массиве на обратный, а мне нужно лишь изменить порядок рендера. Надеюсь вопрос ясен.
  • Вопрос задан
  • 311 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Есть специфический случай, когда нужно, чтобы ng-repeat работал с конца, а не сначала.


Сделайте в контроллере revert массива. Не решайте подобное на уровне шаблонов. Ну либо напишите фильтр.
Ответ написан
Комментировать
@lega
Сергей Протько правильно посоветовал, но если лень, то можно так изратиться
<img ng-repeat="img in images track by $index" ng-src="{{images[images.length - $index -1]}}" />
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы