1

我将 Sightly 与 Sling 8(不是 AEM)一起使用。我有以下模板:

<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:title 属性,因为我已经使用 HTTP 调用确认了它。

如何访问child对象的属性?

4

1 回答 1

5

child是一个没有 getProperties() 但有的资源getValueMap(),所以你应该使用:

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

注意 1:变量名称中允许使用冒号以支持典型的 JCR 名称,例如jcr:title.

注意 2:getValueMap() 仅在 Sling API 2.7.0 捆绑包之后才可用,以前只有resource.adaptTo(ValueMap.class)可能,表达式语言不支持,并且需要此解决方法:AEM 6.0 Sightly Child Nodes

于 2015-10-29T17:52:55.033 回答