Я хочу составить список отфильтрованных элементов в шаблоне HTML / электронной почты Netsuite. Похоже, что эта строка кода не будет работать с freemarker.

<#assign xs = [1, -2, 3, 4, -5]>
Positives:
<#list xs?filter(x -> x > 0) as x>${x} </#list>
Negatives:
<#list xs?filter(x -> x < 0) as x>${x} </#list>

Не могли бы вы рассказать мне, как этого добиться? Огромное спасибо заранее! Я новичок, много искал это и, к сожалению, не повезло.

1
Chadric Gotis 22 Мар 2021 в 02:28

1 ответ

Лучший ответ

Похоже, NetSuite использует FreeMarker v2.3.26, а встроенный filter был добавлен в 2.3.29.

Вот один из способов сделать это без filter:

<#assign xs = [1, -2, 3, 4, -5]>
<#assign xpos = []>
<#assign xneg = []>

<#list xs as x>
    <#if x gt 0>
        <#assign xpos = xpos + [x]>
    <#elseif x lt 0>
        <#assign xneg = xneg + [x]>
    </#if>
</#list>

Positives:
<#list xpos as x>${x} </#list>

Negatives:
<#list xneg as x>${x} </#list>
2
user3075978 23 Мар 2021 в 01:29