我需要从java模型中使用一个函数迭代列表中的每两个元素。因此,我可以每两个元素添加一个html组件。你能帮帮我吗?
f3temu5u1#
根据htl规范:另外一个itemlist(如果使用数据列表定义了自定义标识符/变量,则分别为list。)标识符也可在范围内使用,成员如下:索引:基于零的计数器(0..length-1);计数:一个计数器(1..长度);first:对于正在迭代的第一个元素为true;中间:如果迭代的元素既不是第一个也不是>*最后一个,则为true;last:对于迭代的最后一个元素,为true;奇数:如果计数为奇数,则为真;偶数:如果计数为偶数,则为true。因此,在您的例子中,自定义标识符是 listIcon ,则需要进行测试 listIconList.even 而不是 boxSPID.listIcon.even .对于代码段,如果要插入 row 对于每个偶数元素:
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}">
${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>
</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="${listIconList.odd}"><div class="row"></sly>
<sly data-sly-test="${istIconList.even || listIconList.last}"></div></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>
<div class="row" data-sly-test="${listIconList.odd}">
<div class="${${boxSPID.listIcon[listIconList.count].iconValue}}" data-sly-test="${boxSPID.listIcon[listIconList.count]}">
${boxSPID.listIcon[listIconList.count].label}
1条答案
按热度按时间f3temu5u1#
根据htl规范:
另外一个itemlist(如果使用数据列表定义了自定义标识符/变量,则分别为list。)标识符也可在范围内使用,成员如下:
索引:基于零的计数器(0..length-1);
计数:一个计数器(1..长度);
first:对于正在迭代的第一个元素为true;
中间:如果迭代的元素既不是第一个也不是>*最后一个,则为true;
last:对于迭代的最后一个元素,为true;
奇数:如果计数为奇数,则为真;
偶数:如果计数为偶数,则为true。
因此,在您的例子中,自定义标识符是
listIcon
,则需要进行测试listIconList.even
而不是boxSPID.listIcon.even
.对于代码段,如果要插入
row
对于每个偶数元素:如果要将两个连续元素分组到同一行中,可以有条件地添加组开始/结束标记:
或者跳过一组元素(偶数)并通过索引引用它们以将它们包含在输出中(奇数):