Expand my Community achievements bar.

SOLVED

Sightly List size

Avatar

Level 2

Hi all,

I have used list of child page using Sightly but i want to get the size of that list.

<Sly data-sly-list=${current page.listChildren}>

I want size , i tried itemList.size and item list.length

But it is not working.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

HTL does not provide any method to get list size.

https://github.com/adobe/htl-spec/blob/master/SPECIFICATION.md#226-list  

 

I would recommend to use java suggested by @ksh_ingole7 

 

But If you are curious about how to do it in HTL, I can tell but this is not an optimal solution, you may end up parsing list twice.

 

<sly data-sly-list="${currentPage.listChildren}">
	<sly data-sly-test="${itemList.last}" data-sly-set.aListSize="${itemList.count}" />
</sly>
List size is : ${aListSize}


Arun Patidar

View solution in original post

3 Replies

Avatar

Community Advisor

Hey @bangar20 

 

Consider the following example and see the text in bold :

 

In java:-

 

public List getTestList() {

return testList;

}

 

In HTML:-

 

<sly data-sly-use.useClassObj = "com.ups.components.use.ArrayListClassUse">

Size of List:- ${useClassObj .testList.size}

</sly>

 

Call the getTestList() method using the Class object and the do .size. This will return the size of the list. 

 

Thanks

Avatar

Level 2

Hi @ksh_ingole7 ,

I know from java end but i need to do from Sightly object because I am fetching the list from Sightly object.

 

 

 

Avatar

Correct answer by
Community Advisor

Hi,

HTL does not provide any method to get list size.

https://github.com/adobe/htl-spec/blob/master/SPECIFICATION.md#226-list  

 

I would recommend to use java suggested by @ksh_ingole7 

 

But If you are curious about how to do it in HTL, I can tell but this is not an optimal solution, you may end up parsing list twice.

 

<sly data-sly-list="${currentPage.listChildren}">
	<sly data-sly-test="${itemList.last}" data-sly-set.aListSize="${itemList.count}" />
</sly>
List size is : ${aListSize}


Arun Patidar