我可以使用sighlty从java模型中每隔两个元素添加一个html组件吗?

zlhcx6iw  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(298)

我需要从java模型中使用一个函数迭代列表中的每两个元素。因此,我可以每两个元素添加一个html组件。
你能帮帮我吗?

f3temu5u

f3temu5u1#

根据htl规范:
另外一个itemlist(如果使用数据列表定义了自定义标识符/变量,则分别为list。)标识符也可在范围内使用,成员如下:
索引:基于零的计数器(0..length-1);
计数:一个计数器(1..长度);
first:对于正在迭代的第一个元素为true;
中间:如果迭代的元素既不是第一个也不是>*最后一个,则为true;
last:对于迭代的最后一个元素,为true;
奇数:如果计数为奇数,则为真;
偶数:如果计数为偶数,则为true。
因此,在您的例子中,自定义标识符是 listIcon ,则需要进行测试 listIconList.even 而不是 boxSPID.listIcon.even .
对于代码段,如果要插入 row 对于每个偶数元素:

<sly data-sly-test="${boxSPID.listIcon}"
     data-sly-list.listIcon="${boxSPID.listIcon}">
    ${listIconList.count} <!-- You can remove this line, it's just for debug -->
    <div class="row" data-sly-test="${listIconList.even}">
        <div class="${listIcon.iconValue}">
            ${listIcon.label}
        </div>
    </div>
</sly>

如果要将两个连续元素分组到同一行中,可以有条件地添加组开始/结束标记:

<sly data-sly-test="${boxSPID.listIcon}"
     data-sly-list.listIcon="${boxSPID.listIcon}">
    <sly data-sly-test="${listIconList.odd}"><div class="row"></sly>
        <div class="${listIcon.iconValue}">
            ${listIcon.label}
        </div>
    <sly data-sly-test="${istIconList.even || listIconList.last}"></div></sly>
</sly>

或者跳过一组元素(偶数)并通过索引引用它们以将它们包含在输出中(奇数):

<sly data-sly-test="${boxSPID.listIcon}"
     data-sly-list.listIcon="${boxSPID.listIcon}">
    <div class="row" data-sly-test="${listIconList.odd}">
        <div class="${listIcon.iconValue}">
            ${listIcon.label}
        </div>
        <div class="${${boxSPID.listIcon[listIconList.count].iconValue}}" data-sly-test="${boxSPID.listIcon[listIconList.count]}">
            ${boxSPID.listIcon[listIconList.count].label}
        </div>
    </div>
</sly>

相关问题