我将 Sightly 与 Sling 8(不是 AEM)一起使用。我有以下模板:
<div data-sly-list.child="${resource.listChildren}">
${child.name} | ${child.path} | ${child.properties['jcr:title'] || 'no title'}
</div>
Run Code Online (Sandbox Code Playgroud)
输出(对于单个孩子)是
hello_world | /content/blog/posts/hello_world | no title
Run Code Online (Sandbox Code Playgroud)
我知道子资源上有一个 jcr:title 属性,因为我已经使用 HTTP 调用确认了它。
如何访问child对象的属性?
该child是一个资源不具有的GetProperties(),但是有getValueMap(),所以你应该使用:
${child.valueMap.jcr:title || 'no title'}
Run Code Online (Sandbox Code Playgroud)
注 1:变量名称中允许使用冒号以支持典型的 JCR 名称,例如jcr:title.
注 2:getValueMap() 仅在 Sling API 2.7.0 捆绑包后可用,以前只能resource.adaptTo(ValueMap.class)使用,而 Sightly 的表达式语言不支持,需要此解决方法:AEM 6.0 Sightly Child Nodes
| 归档时间: |
|
| 查看次数: |
3206 次 |
| 最近记录: |