2016-06-09 43 views
0

我有一個列表,我正在迭代,但我想用我自己的計數器。我嘗試了幾次不成功的嘗試來實現我自己的計數器。內置的函數不起作用,因爲有些記錄會被動態地從列表中過濾掉,但是我只想對未被過濾的記錄進行計數。我試着給一個變量分配一個值並遞增,但似乎總是重複這個值。如何在freemarker中實現自定義計數器?

示例代碼

<#list recordList as record> 
    <#assign count>${record_index + 1 }</#assign> 
    <#if record.isNotExcluded()>    
     <#lt> Record ${count} 
    </#if> 
</#list> 

在上面,如果我有5條記錄和第三記錄被排除的例子則拋出編號關閉。

回答

1

您必須分配之外的計數for循環:

<#assign count = 0> 

<#list recordList as record> 
    <#if record.isNotExcluded()>    
     <#lt> Record ${count} 
     <#assign count = count + 1> 
    </#if> 
</#list> 

編輯:作爲最佳實踐後端被髮送到視圖中的數據應該已經被排除的項目過濾掉。這是業務邏輯,不應該在FreeMarker視圖中完成。後端應該只發送所需的數據,以避免像這樣的邏輯。

+1

增加一個簡潔的方法:'<#assign count ++>' – ddekany

+0

這對我正在嘗試做的工作!再次感謝。我剛從freemarker開始,所以我仍然掌握了語法和結構。現在我看到了循環之外的情況。 Bonehead在我的角色錯誤。 –

+0

@JoeUser如果我回答了您的問題,您能否將問題標記爲已回答,以便其他用戶可以找到答案?謝謝! (和FreeMarker祝你好運!) – ratherblue

相關問題