我有一个模板,它在不同的地方使用相同的多值属性。我经常发现自己处于这样一种情况,即我想在将模板应用于各个值之前过滤属性。
我可以做这个:
<#col:{c|<if(cond)><# c.Attribute2 #><endif>};separator=\",\"#>
但这不是我想要的,因为输出中有分隔“跳过”条目的分隔符,例如:
2,4,,,6,,4,5,,
我可以将其修改为
<#col:{c|<if(c.Attribute1)><# c.Attribute2 #>,<endif>};separator=\"\"#>
这几乎没问题,但我在最后一个数字之后得到了一个额外的分隔符,这有时并不重要(通常当分隔符是空格时),但有时会:
2,4,6,4,5,
我有时最终会这样做:
<#first(col):{c|<if(cond)><# c.Attribute2 #><endif>};separator=\"\"#>
<#rest(col):{c|<if(cond)>,<# c.Attribute2 #><endif>};separator=\"\"#>
但是如果第一个成员不满足条件,这种方法就失败了,那么开头就有一个额外的分隔符:
,2,4,6,4,5
有人可以给我一个更好的解决方案吗?