2015-10-29 9 views
0

Я использую Sightly с Sling 8 (не AEM). У меня есть следующий шаблон:Как получить доступ к свойствам элемента списка данных в Sightly?

<div data-sly-list.child="${resource.listChildren}"> 
    ${child.name} | ${child.path} | ${child.properties['jcr:title'] || 'no title'} 
</div> 

Выход (для одного ребенка) является

hello_world | /content/blog/posts/hello_world | no title 

Я знаю, что есть JCR: название объект на дочернем ресурсе, как я подтвердил его используя HTTP вызов.

Как получить доступ к свойствам объекта child?

ответ

3

child является Resource, который не имеет GetProperties(), но имеет getValueMap(), так что вы должны использовать:

${child.valueMap.jcr:title || 'no title'} 

Примечание 1: Двоеточие допускаются в именах переменных, чтобы поддержать типичные имена JCR как jcr:title.

Примечание 2: getValueMap() доступно только с Слингом API 2.7.0 свертка, ранее только resource.adaptTo(ValueMap.class) было возможно, что язык выражений в красивом не поддерживает, и это временное решение требовалось: AEM 6.0 Sightly Child Nodes

+0

Имеет смысл , Спасибо! –