如何直观地使用整数值来迭代循环多次值?

How to use an integer value in sightly to iterate loop as many time of value?

我想直接根据整数值迭代一个循环就像如果整数值为5那么循环将迭代五次。

我在 jsp 页面中知道使用 JSTL 的方法:

<c:forEach var="item" begin="1" end="${properties.value}" varStatus="loop">
    //statement
</c:forEach>

以上 "end" 我从对话框中获取值,如果我传递的值类似于 5,那么循环将执行 5 次。

我在下面提到了 link :

我也进行了几次 google 搜索,但我没有找到这种情况的任何示例,每个示例都基于 sightly List。

我想根据从对话框中传递的整数值使用 sightly 来执行此操作。

谢谢,

Arpit 宝来

在 HTL/Sightly 中你只能迭代一个集合:https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/master/SPECIFICATION.md#227-repeat

解决方法是使用一个 Use-API 助手,然后简单地创建一个具有所需大小的列表,以便您可以迭代。

分享我的解决方案,对其他人有帮助:)...

经过几次 google 搜索并从 Sightly/HTL Documentation 我了解到 Sightly/HTL 仅遍历集合 .

所以我用“HTL JavaScript Use-API”来解决我的问题。

首先在我的 .js 文件中,在获取对话框整数值后,我将返回一个基于该值的数组。 以下是我的“itemCount.js”文件的代码:

"use strict";
use(function () {
    var count = properties["loopCountValue"];

    return new Array(Number(count));
});

第二个在我的 .html 文件中,使用 Sightly List (data-sly-list) 我正在迭代数组。 以下是我的“testCount.html”文件的代码:

<sly data-sly-use.clientLib="${'/libs/granite/sightly/templates/clientlib.html'}" />
<sly data-sly-use.itemCount="itemCount.js" data-sly-unwrap />
 
<sly data-sly-test="${!itemCount}">
    <div>
        <h2>Iterate a sightly loop based on Integer value passed from dialog.</h2>
    </div>
</sly>
 
<sly data-sly-test="${itemCount}">
    <p>Test Count ${itemCount}</p>
    
    <ul data-sly-list.contentCount="${colCount}">
        <li>ITEMS : ${contentCountList.count}</li>
    </ul>
</sly>

--

谢谢,

Arpit 宝来