Aem 如何只打印前几项?

Aem 如何只打印前几项?,aem,sightly,htl,Aem,Sightly,Htl,清单上有10项。我只想打印列表中的前5项。如何使用数据sly列表添加条件您可以将索引或计数与数据一起使用-sly测试类似: <ul data-sly-list="${mylist}"> <li data-sly-test="${itemList.index < 5}">${itemList}</li> </ul> ${itemList} 或者,如果您的列表很大,并且您不想对其进行迭代,则可以定义一个Use API helper

清单上有10项。我只想打印列表中的前5项。如何使用数据sly列表添加条件

您可以将
索引
计数
与数据一起使用-
sly测试
类似:

<ul data-sly-list="${mylist}">
    <li data-sly-test="${itemList.index < 5}">${itemList}</li>
</ul>
  • ${itemList}

或者,如果您的列表很大,并且您不想对其进行迭代,则可以定义一个Use API helper来创建一个只包含前5个所需元素的新列表。

您可以对数据使用
索引
计数
,例如:

<ul data-sly-list="${mylist}">
    <li data-sly-test="${itemList.index < 5}">${itemList}</li>
</ul>
  • ${itemList}

或者,如果您的列表很大,并且您不想对其进行迭代,那么您可以定义一个Use API helper,它可以创建一个只包含前5个所需元素的新列表。

我个人认为,不要在HTL中使用它(很明显)。显然,这并不是为了“业务逻辑”。它是用来展示一些东西的。因此,如果您只想显示列表中的5个项目,那么请使用(Sling)模型,只将包含5个项目的列表返回到HTL模板。显然,这并不是为了“业务逻辑”。它是用来展示一些东西的。因此,如果您只想显示列表中的5项,那么请使用(Sling)模型,只将包含5项的列表返回到HTL模板。我不是100%确定,但我认为这将迭代整个列表,但只显示前5项。如果列表有100.000个项目,并且所有项目都被迭代以仅显示其中的5个项目,该怎么办?这是正确的@Jens,为了有效地限制大小,有人需要编写一个使用API帮助程序来创建一个具有目标大小的新列表。@Jens根据我的经验,最好避免在HTL中使用任何不严格表示逻辑的逻辑。过滤一组项目应该由Java代码来处理,在Java代码中,您可以对数据进行更多的控制。@toniedzwiedz我完全同意,这就是我对这个问题的评论。我不是100%确定,但我认为这将迭代整个列表,但只显示前5个项目。如果列表有100.000个项目,并且所有项目都被迭代以仅显示其中的5个项目,该怎么办?这是正确的@Jens,为了有效地限制大小,有人需要编写一个使用API帮助程序来创建一个具有目标大小的新列表。@Jens根据我的经验,最好避免在HTL中使用任何不严格表示逻辑的逻辑。过滤一组项目应该由Java代码来处理,您可以在Java代码中对数据进行更多的控制。@toniedzwiedz我完全同意,这就是我对这个问题的评论。