2012-04-13 11 views
6

Piszę tablicę JS obiektów w szablonie Freemarker. Ale mam poważne problemy, nie licząc przecinka po ostatnim elemencie.Freemarker, indeks listy i stan liczenia

<#assign pages = module.pages.page> 
wh.pages = [ 
<#list pages as page> 
{"name" : "${[email protected]}", "href" : "${[email protected]}"} 
<#if (index+1) < pages?size>,</#if> 
</#list> 
] 

więc podczas powtórzenia liście, podczas gdy indeks + 1 jest mniejsza niż długość/rozmiaru stron zmiennych, należy napisać przecinek. Tak więc, gdy jest równa wielkości, należy pominąć przecinek.

Więc jak można to osiągnąć?

+1

http://freemarker.sourceforge.net/docs/ ref_directive_list.html Nie, jak bym to zrobił, ich przykład wydaje się być czystszy. –

+0

Tak, że zbyt ... nie wiedział o funkcji "_has_next". Próbowałem to zrobić w starej szkole. Wstyd, że nie uznałeś tego za odpowiedź, zaakceptowałbyś to. –

Odpowiedz

8

Indeks musi być poprzedzony nazwą przedmiotu. Na przykład:

<#if (index+1) < pages?size>,</#if> 

powinno być:

<#if (page_index+1) < pages?size>,</#if> 
12

Spróbuj z item_has_next

w Twojej przykładzie:

<#if pages_has_next>,</#if>