【问题标题】:How to use an integer value in sightly to iterate loop as many time of value?如何在视觉上使用整数值来迭代循环尽可能多的值?
【发布时间】:2016-09-30 12:24:06
【问题描述】:

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

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

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

在“结束”的上方我正在从对话框中获取值,如果我传递的值像 5,那么循环将执行 5 次。

我参考了以下链接:

我也进行了几次谷歌搜索,但我没有找到这种场景的任何示例,每个示例都是基于视觉列表。

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

谢谢,

阿皮特波拉

【问题讨论】:

    标签: aem sightly aem-6 htl


    【解决方案1】:

    在 HTL/Sightly 中,您只能遍历集合:https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/master/SPECIFICATION.md#227-repeat

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

    【讨论】:

    • 感谢@Vlad 的建议,这真的很有帮助:)
    【解决方案2】:

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

    经过几次谷歌搜索和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>
    

    --

    谢谢,

    阿皮特波拉

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2022-07-11
      • 2016-08-27
      相关资源
      最近更新 更多