Freemaker:在关联数组中赋值

时间:2016-01-29 13:48:01

标签: freemarker

我对Freemarker来说相当新鲜。我正在尝试创建一个列出发票的电子邮件模板,然后是底部应付的总金额。但是,需要有一个不同的"总金额"基于货币(一些客户可能有3张欧元发票,2英镑等)。 我创建了一个关联数组,其中键是货币,值是该货币的总金额。对于每张发票,我需要添加由于正确货币值而产生的金额。但是我收到一个意外的字符错误。 这是要点:

<#assign totalarr = {} />
<#list invoicelist as invoice>
    <#assign invcur = invoice.currency />
    <#assign invamt = invoice.amountremaining />
    <#assign totalarr[invcur] = totalarr[invcur] + invamt />
</#list>

错误在倒数第二行,我试图将金额添加到总价值中。有任何想法吗? 谢谢! -Kristin

1 个答案:

答案 0 :(得分:2)

要更改哈希子变量值,您需要使用concatenation,如下所示:

<#assign totalarr = {} />
<#list invoicelist as invoice>
    <#assign invcur = invoice.currency />
    <#assign invamt = invoice.amountremaining />
    <#assign sum = totalarr[invcur]!0  />
    <#assign totalarr = totalarr + {invcur : sum + invamt} />
</#list>
<#list totalarr?keys as key>
${key} = ${totalarr[key]}
</#list>