我正在根据JSON对象的排序数组创建PDF,并按任务排序,其中每个对象(例如JSON.arr[0] == i
,包含备忘录,费率,金额和taskText。
我想仅在当前任务是第一个任务或与前一个任务不同的情况下才单独显示该任务。 taskText没有显示任何内容。
<#if JSON?has_content>
<table>
<tr>
<th colspan="5">MEMO</th>
<th>RATE</th>
<th>AMOUNT</th>
</tr>
<#list JSON.arr as i>
<#if i?first>
<#assign task = i.taskText>
<tr><td>${i.taskText}</td></tr>
</#if>
<#if i.taskText != task>
<#assign task = i.taskText>
<tr><td>${i.taskText}</td></tr>
</#if>
<tr>
<td colspan="5">${i.memo}</td>
<td>$${i.rate}</td>
<td>$${i.amount}</td>
</tr>
</#list>
</table>
</#if>
最佳答案
使用内置的?is_first
代替?first
。用于检查当前项目是否是当前列表中的第一项。
对于其他要求,我建议在循环之前为task
分配一个初始值。很有可能任务从未设置为null
以外的任何内容,因此比较失败。
关于javascript - 在freemarker模板中有条件地显示行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51026479/