Hi,
I need to iterate a loop based on Integer value. I know a way to do it using jstl but need to do it in sightly.
<c:forEach var="item" begin="1" end="5" varStatus="loop"> </c:forEach>
This loop will get execute 5 times.
Same I need to do in Sightly.
Solved! Go to Solution.
Views
Replies
Total Likes
Hi
And
Loop with fixed number of items
<ul data-sly-list="${ [1,2,3,4] }">
<li>${item}</li>
</ul>
Thanks and Regards
Kautuk Sahni
Views
Replies
Total Likes
Hi
Please have a look at the documentation:-
Link:- https://docs.adobe.com/docs/en/aem/6-1/develop/sightly/block-statements.html
//
LIST
data-sly-list: Repeats the content of the host element for each enumerable property in the provided object.
Here is a simple loop:
<dl data-sly-list="${currentPage.listChildren}">
<dt>index: ${itemList.index}</dt>
<dd>value: ${item.title}</dd>
</dl>
Code samples are intended for illustration purposes only.
The following default variables are available within the scope of the list:
item: The current item in the iteration.
itemList: Object holding the following properties:
index: zero-based counter (0..length-1).
count: one-based counter (1..length).
first: true if the current item is the first item.
middle: true if the current item is neither the first nor the last item.
last: true if the current item is the last item.
odd: true if index is odd.
even: true if index is even.
//
<ul data-sly-list.child="${currentPage.listChildren}">
<li class="${ childList.odd ? 'odd' : 'even'}">${child.title}</li>
</ul>
//
<div data-sly-list.children="${resource.listChildren}">
<div data-sly-list.fields="${children.listChildren}">
<div data-sly-test=${fieldsList.last}> DO SOMETHING BEFORE LAST NODE</div>
<div data-sly-resource="${fields.path}"></div>
</div>
</div>
So according to your use-case you can use :
<ul data-sly-list.child="${currentPage.listChildren}">
<li data-sly-test="${childList.index <= 5}">${child.title}</li>
</ul>
I hope this will work for you.
Thanks and Regards
Kautuk Sahni
Hi
And
Loop with fixed number of items
<ul data-sly-list="${ [1,2,3,4] }">
<li>${item}</li>
</ul>
Thanks and Regards
Kautuk Sahni
Views
Replies
Total Likes
Thanks for your reply. It's working fine in one way :)
But, what I need to achieve is, in case of classic UI with JSTL, what I was doing is, I was passing one integer value from the dialog which I iterated over using jstl code:
<c:forEach var="item" begin="1" end="${properties.value}" varStatus="loop"> </c:forEach>
Now, how can I use one integer value in sightly to iterate loop as many time of value?
Regards,
Himanshu
Views
Replies
Total Likes