Как получить размер списка в freemarker? - PullRequest
1 голос
/ 08 февраля 2020

Я создал шаблон контента, в котором пользователь может создавать несколько карт / коробок. Он работает хорошо, но я хотел бы изменить css, если пользователь создает только одну коробку. Я пробовал это с getList ()? Размер, но он не работал. Любая идея, как я могу доказать, если размер 1?

<div id="my-cards">
    <#list boxen.getSiblings() as box>
     <#assign i = box.getList()?size>   
       <#if i==1>
       <p>There is one box</p>
       </#if>
        <!-- Card-->
        <div class="card-box mb-3">
            <!-- Image-->
            <div class="card-pic">
                    <#if box.image.getData() != "">
                    <img src="${box.image.getData()}" />
                </#if>
            </div>
            <!--  Content-->
            <div class="card-box-content">


                <#if box.headline.getData() != "">
                <h2 class="title">${box.headline.getData()}</h2>
                 </#if>

                 <#if box.content.getData() != "">            
                <p class="description">${box.content.getData()}</p>
                </#if>
                <div class="card-box-footer">
                    <br />

            </div>
        </div>

    </#list>   
</div>

1 Ответ

1 голос
/ 08 февраля 2020

Чтобы получить размер вашего списка, вы должны использовать list?size, что означает boxen.getSiblings()?size для этого примера. Я не думаю, что box.getList() является действительным.

Проверьте этот пример:

   <#assign listA = ['one']>
   <#assign listB = ['one' , 'two']>
   <#list listA as element>
   <#if (listA?size = 1)>
     ${element}
   </#if>
   </#list>
   <#list listB as element>
   <#if (listB?size = 1)>
     ${element}
   </#if>
   </#list>

выполняется только первое условие и вывод: один

...