我希望基于Integer值迭代循环,如果整数值为5则循环将迭代五次。
我知道在jsp页面中使用JSTL的方法:
<c:forEach var="item" begin="1" end="${properties.value}" varStatus="loop">
//statement
</c:forEach>
以上&#34;结束&#34; 从对话框中获取值,如果我传递的值为5,则循环将执行5次。
我在下面提到了链接:
我也做了几次谷歌搜索,我没有找到任何这种情况的例子,每个例子都是基于轻微的List。
我想根据对话框中传递的整数值使用它来做这件事。
谢谢,
Arpit Bora
答案 0 :(得分:1)
在HTL / Sightly中,您只能迭代一个集合:https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/master/SPECIFICATION.md#227-repeat
解决方法是使用Use-API帮助程序,只需创建一个具有所需大小的列表,以便进行迭代。
答案 1 :(得分:1)
分享我的解决方案,这对其他人有帮助:))
经过多次谷歌搜索后,从Sightly/HTL Documentation开始,我知道 Sightly / HTL仅在集合中进行迭代。
所以我用了#34; HTL JavaScript Use-API&#34;实现我的问题解决方案。
首先在我的.js文件中,获取对话框整数值后,我根据该值返回一个数组。 以下是我的&#34; itemCount.js&#34;的代码。档案:
"use strict";
use(function () {
var count = properties["loopCountValue"];
return new Array(Number(count));
});
我的.html文件中的第二个,使用Sightly List(数据狡猾列表)i迭代数组。 以下是我的&#34; testCount.html&#34;的代码。档案:
<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 Bora