2016-06-09 2 views
0

나는 반복 할 수있는 목록이 있지만 내 카운터를 사용하려고합니다. 나는 내 자신의 카운터를 구현하는 몇 가지 실패한 시도와 함께 노력했다. 내장 된 함수는 작동하지 않습니다. 일부 레코드는 목록에서 즉시 필터링되어 필터링되지만 필터되지 않은 레코드 만 계산되기를 원합니다. 나는 변수에 값을 할당하고 증가 시키려고했지만 항상 그 값을 반복하는 것처럼 보였다.freemarker에 사용자 지정 카운터를 구현하는 방법은 무엇입니까?

I 5 개 레코드를 가지고 제 레코드가 제외되는 경우 위의 예에서

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

샘플 코드 다음은 번호를 던진다.

답변

1

당신은 외부의 수를 지정해야하는 루프에 대한 :

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

관련 문제