Html 很明显:迭代一个列表并使用其索引打印另一个列表(不是嵌套的,只是共享索引)

Html 很明显:迭代一个列表并使用其索引打印另一个列表(不是嵌套的,只是共享索引),html,list,aem,sightly,htl,Html,List,Aem,Sightly,Htl,我有两张单子。对象allList中的list1和pathList <div data-sly-list.list1="${allList.list1}"> <img src="soemthing"> <a href="XXXXXXXXX">${list1}</a> </div> 在我写“XXXXXXXXX”的地方,我需要像 ${pathList['list1List.index']} 或 ${allList.pat

我有两张单子。对象allList中的list1和pathList

<div data-sly-list.list1="${allList.list1}">
    <img src="soemthing">
    <a href="XXXXXXXXX">${list1}</a>
</div>

在我写“XXXXXXXXX”的地方,我需要像

${pathList['list1List.index']}

${allList.pathList['list1List.index']}

因此,基本上我想使用第一个列表的索引来迭代第二个列表,而不能使用嵌套循环。


但是每当我尝试使用上面提到的语法时,我都会得到模板解析错误,因为语法是错误的。有人请指导我如何实现这一点。

您必须使用不带“”的索引,例如:
${allList.pathList[list1List.index]}

例如:

@Model(adaptables = Resource.class)
public class TestModel {

    @Inject
    Resource resource;

    private String[] abc = {"a", "b", "c"};
    private String[] def = {"d", "e", "f"};
    ...
}
HTL:


测试:${first}-${model.def[firstList.index]}

输出HTML:

<p>Test: a  -  d</p>
<p>Test: b  -  e</p>
<p>Test: c  -  f</p>
测试:a-d

测试:b-e

测试:c-f


如果将list1List.index与“”一起使用,则使用的是字符串“list1List.index”。你用${allList.pathList[list1List.index]}试过了吗?对你有用吗?我今天有机会试用了,效果非常好。谢谢你的回答。
<p>Test: a  -  d</p>
<p>Test: b  -  e</p>
<p>Test: c  -  f</p>