data-sly-list 如何检查第一项
data-sly-list how to check for first item
使用 data-sly-list 我可以在 Sightly 中遍历列表对象,但我如何检查第一个
<li>
并向其添加特定的 class?
另外,如何分别显示每个项目?现在我的列表看起来像一个 LI,所有项目都用逗号分隔。 (<li> item1,item2,item3 </li>
)
<ol data-sly-list="${currentPage.title}">
<li>${properties.title}</li>
</ol>
我试过:
<div data-sly-test="${!first}">
但没有用...有什么想法吗?
选中 spec,您可以为此使用 itemList
变量:
<ol data-sly-list="${['a', 'b', 'c']}">
<li class="${itemList.first?'first':''}">${item}</li>
</ol>
在标准 AEM 示例模板和组件中,jcr:title
是一个单值字段,因此迭代 ${currentPage.title}
只会生成一个列表项。
您的代码应如下所示:
<ol data-sly-list="${currentPage.title}">
<li class="${itemList.first?'first':''}">${item}</li>
</ol>
但我不确定,你在做什么。 jcr:title
是您页面组件中的多值字段吗?或者它是单个值并包含逗号分隔列表?
如果 jcr:title
是多值字段,则存在下一个问题,因为 com.day.cq.wcm.api.Page
returns 中的方法 getTitle()
是一个字符串值而不是列表值。
然后您必须使用 properties
对象:
<ol data-sly-list="${properties.jcr:title}">
<li class="${itemList.first?'first':''}">${item}</li>
</ol>
这应该对你有用。
我的建议是尽可能将 jcr:title
切换回单值字段以保持内部 API 正常工作并添加另一个字段(即 myTitle
),这可能是一个多字段值字段。
使用 data-sly-list 我可以在 Sightly 中遍历列表对象,但我如何检查第一个
<li>
并向其添加特定的 class?
另外,如何分别显示每个项目?现在我的列表看起来像一个 LI,所有项目都用逗号分隔。 (<li> item1,item2,item3 </li>
)
<ol data-sly-list="${currentPage.title}">
<li>${properties.title}</li>
</ol>
我试过:
<div data-sly-test="${!first}">
但没有用...有什么想法吗?
选中 spec,您可以为此使用 itemList
变量:
<ol data-sly-list="${['a', 'b', 'c']}">
<li class="${itemList.first?'first':''}">${item}</li>
</ol>
在标准 AEM 示例模板和组件中,jcr:title
是一个单值字段,因此迭代 ${currentPage.title}
只会生成一个列表项。
您的代码应如下所示:
<ol data-sly-list="${currentPage.title}">
<li class="${itemList.first?'first':''}">${item}</li>
</ol>
但我不确定,你在做什么。 jcr:title
是您页面组件中的多值字段吗?或者它是单个值并包含逗号分隔列表?
如果 jcr:title
是多值字段,则存在下一个问题,因为 com.day.cq.wcm.api.Page
returns 中的方法 getTitle()
是一个字符串值而不是列表值。
然后您必须使用 properties
对象:
<ol data-sly-list="${properties.jcr:title}">
<li class="${itemList.first?'first':''}">${item}</li>
</ol>
这应该对你有用。
我的建议是尽可能将 jcr:title
切换回单值字段以保持内部 API 正常工作并添加另一个字段(即 myTitle
),这可能是一个多字段值字段。