2017-09-12 26 views
0

我想列出所有我的標籤名稱在一列中。在列出它們時,我將每個標籤的名稱存儲在數組tagarray中。在列表下面,我想輸出整個數組在<p>內。Freemarker動態添加元素到數組中

 <div> 
      <#assign tagarray = []> 
      <#list elements as element> 
       <#if element.tags??> 
        <#list element.tags as tag> 
         <#if tag.myProperty??> 
          <span class="section-name">${tag.text}</span> 
          <br /> 
          <#assign tagarray = tagarray + ["${tag.text}"]> 
         </#if> 
        </#list> 
       </#if> 
      </#list> 
      <p>${tagarray}</p> 
     </div> 

的問題是,這行代碼:

<#assign tagarray = tagarray + ["${tag.text}"]> 

似乎並沒有工作。根據一些網站上面的語法是正確的,所以我不知道爲什麼它不工作。

回答

1

分配線條看上去語法正確的(儘管你不需要在它的$,你可以只寫... + [tag.text],也可以使其與+=更簡潔,像<#assign tagarray += [tag.text]>)。 ${tagarray}將失敗,因爲不清楚如何格式化序列。也許你想在那裏${tagarray?join(', ')}

另請注意,如果多次添加序列,列出結果將會很慢。儘管如此,這可能不是您的使用問題。