在alfresco freemarkuer模板中列出javascript数组

时间:2017-02-10 14:45:04

标签: javascript templates alfresco freemarker

基本上我已经填充了以下JavaScript数组:

array1 = new Array(1, 2, 3);
array2 = new Array("Title1", "Title2", "Title3");
array3 = new Array("10-02-2017", "11-02-2017", "12-02-2017");

bigArray = new Array();
bigArray.push(array1);
bigArray.push(array2);
bigArray.push(array3);

model.entry = bigArray;

现在在ftl文件中我想从ftl文件中获取以下输出:

1, Title1, 10-02-2017
2, Title2, 11-02-2017
3, Title3, 12-02-2017

如何“称呼”这样的用例? Ich甚至不知道谷歌的用途,所以我可以阅读手册和内容。你能帮忙或推荐一些有用的教程吗?

3 个答案:

答案 0 :(得分:2)

我想重点是你要迭代三个隔行扫描的数组。在这种情况下,我只是遍历公共索引:

<#list 0 ..< entry[0]?size as i>
${entry[0][i]}, ${entry[1][i]}, ${entry[2][i]}
</#list>

答案 1 :(得分:1)

您可以使用JSON对象而不是多个数组来映射对象,否则这里是获取输出的FTL代码。

<#list entry[0] as item0>
  ${item0}, 
  <#list entry[1] as item1>
    <#if item1?index == item0?index>
      ${item1}, 
    </#if>
  </#list>
  <#list entry[2] as item2>
    <#if item2?index == item0?index>
      ${item2}
    </#if>
  </#list>
  <br />
</#list>
如果这样的指数不存在,请考虑处理异常。

答案 2 :(得分:0)

我只是通过将我的bigArray分成单个数组来解决它。

所以我不再:

bigArray = new Array();
bigArray.push(array1);
bigArray.push(array2);
bigArray.push(array3);

model.entry = bigArray;

现在我有:

model.ids = array1;
model.titles = array2;
model.dates = array3;

然后我输出它们:

IDs:
<#list ids as id>
  ${id}<#sep>,
</#list><br>

Titles:
<#list titles as title>
  ${title}<#sep>,
</#list><br>

Dates:
<#list dates as date>
  ${date}<#sep>,
</#list><br>

所以我的输出看起来有点不同:

IDs: 1,2,3
Titles: Title1, Title2, Title3
Dates: 10-02-2017, 11-02-2017, 12-02-2017

谢谢你的帮助!