【问题标题】:How to print only first few items in slightly?如何仅打印前几项?
【发布时间】:2016-10-10 06:45:52
【问题描述】:

我在列表中有 10 个项目。我只想打印列表中的前 5 个项目。如何使用 data-sly-list 添加条件

【问题讨论】:

  • 就个人而言,我会说不要在 HTL(Sightly)中这样做。 Sightly 并不意味着“业务逻辑”。它是为了展示一些东西。因此,如果您只想显示列表中的 5 个项目,则使用(Sling)模型并仅将包含 5 个项目的列表返回到 HTL 模板。

标签: aem sightly htl


【解决方案1】:

您可以将indexcount properties of the list item 与data-sly-test 一起使用,例如:

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

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

【讨论】:

  • 我不是 100% 确定,但我认为这将迭代整个列表,但只显示前 5 个项目。如果列表有 100.000 个项目并且所有项目都被迭代以仅显示其中的 5 个呢?
  • 这是正确的@Jens,为了有效地限制大小,有人需要编写一个 Use-API 帮助程序来创建一个具有目标大小的新列表。
  • @Jens 根据我的经验,最好避免在 HTL 中使用任何不是严格表示逻辑的逻辑。过滤一组项目应由 Java 代码处理,您对数据有更多的控制权。
  • @toniedzwiedz 我完全同意,这就是我写的作为对该问题的评论。
猜你喜欢
  • 2018-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2015-07-09
  • 2012-05-16
  • 1970-01-01
相关资源
最近更新 更多