2016-07-20 3 views
1

Использования данных-лукавый-лист можно перебрать список объекты в красивом, но как я могу проверить для первогоданных хитрого-список, как проверить первый элемент

<li> 

и добавить определенный класс Это ? Также, как отображать каждый элемент отдельно? теперь мой список выглядит как один LI со всеми элементами, разделенными комой. (<li> item1,item2,item3 </li>)

<ol data-sly-list="${currentPage.title}"> 
    <li>${properties.title}</li> 
</ol> 

Я попытался с:

<div data-sly-test="${!first}"> 

но не работал ... какие-нибудь идеи?

ответ

1

Проверьте spec, вы можете использовать переменную itemList для этого:

<ol data-sly-list="${['a', 'b', 'c']}"> 
    <li class="${itemList.first?'first':''}">${item}</li> 
</ol> 
0

В стандартных шаблонах, и компоненты AEM, jcr:title это одно поле значение, так переборе ${currentPage.title} будет генерировать только один элемент списка. Ваш код должен выглядеть следующим образом:

<ol data-sly-list="${currentPage.title}"> 
    <li class="${itemList.first?'first':''}">${item}</li> 
</ol> 

Но я не уверен, что вы до. Поле jcr:title многозначное поле в вашем компоненте страницы? Или это одно значение и содержит список, разделенный запятой?

Если jcr:title является многозначным полем, то есть следующая проблема, как метод getTitle() из com.day.cq.wcm.api.Page возвращает строковое значение, а не значение списка.

Вы должны были бы использовать properties объект, то вместо того, чтобы:

<ol data-sly-list="${properties.jcr:title}"> 
    <li class="${itemList.first?'first':''}">${item}</li> 
</ol> 

Это должно сделать трюк для вас.

Моей рекомендацией было бы переключить jcr:title обратно в одно поле значения, если это возможно, чтобы сохранить внутренние API-интерфейсы и вместо этого добавить другое поле (т. Е. myTitle), которое может быть полем с несколькими значениями.

+0

jcr: title это многозначное поле, я хотел бы отображать их как список и добавлять определенный класс к первому элементу, если это имеет смысл? – fernando