2017-09-12 1 views
0

J'essaye de lister tous mes noms de balises dans une colonne. En les listant, je stocke le nom de chaque tag dans le tableau tagarray. En dessous de la liste, je veux afficher un tableau entier à l'intérieur de <p>.Freemarker ajouter dynamiquement des éléments dans le tableau

 <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> 

La question est, cette ligne de code:

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

ne semble pas fonctionner. Selon certains sites, la syntaxe ci-dessus est correcte, donc je ne sais pas pourquoi ça ne marche pas.

Répondre

1

La ligne d'affectation semble syntaxiquement correcte (si vous ne l'avez pas besoin $ dedans, vous pouvez simplement écrire ... + [tag.text], vous pouvez le rendre moins bavard avec +=, comme <#assign tagarray += [tag.text]>). ${tagarray} échouera car il n'est pas clair comment formater la séquence. Peut-être que vous voulez ${tagarray?join(', ')} là.

Notez également que si vous ajoutez des séquences plusieurs fois, la liste des résultats sera lente. Ce n'est peut-être pas un problème dans votre cas d'utilisation.