#aem #sightly #htl
#aem #sightly #htl
Вопрос:
У меня есть 10 элементов в списке. Я хочу напечатать только первые 5 элементов в списке. Как добавить условие с помощью data-sly-list
Комментарии:
1. Лично я бы сказал, не делайте этого в HTL (Sightly). Sightly не предназначен для «бизнес-логики». Он предназначен для отображения чего-либо. Итак, если вы хотите отобразить только 5 элементов из своего списка, используйте модель (Sling) и возвращайте список только с 5 элементами в шаблон HTL.
Ответ №1:
Вы можете использовать index
свойства count
или элемента списка с данными, sly-test
подобными:
<ul data-sly-list="${mylist}">
<li data-sly-test="${itemList.index < 5}">${itemList}</li>
</ul>
В качестве альтернативы, если ваш список большой, и вы не хотите его повторять, вы можете определить помощник Use-API, который создает новый список только с первыми 5 необходимыми элементами.
Комментарии:
1. Я не уверен на 100%, но я думаю, что это приведет к повторению всего списка, но отобразит только первые 5 элементов. Что, если в списке 100 000 элементов, и все они повторяются, чтобы отобразить только 5 из них?
2. Правильно, @Jens, чтобы эффективно ограничить размер, кому-то нужно будет написать помощник Use-API, который создает новый список с целевым размером.
3. @Jens по моему опыту, лучше избегать какой-либо логики в HTL, которая не является строго логикой представления. Фильтрация набора элементов должна обрабатываться Java-кодом, где у вас гораздо больше контроля над данными.
4. @toniedzwiedz Я полностью согласен, и это то, что я написал в качестве комментария к вопросу.