2016-01-02 40 views
-1

我有一個代碼,GSP爲:如何在gsp g中執行2個if/else語句:每個?

<g:each in="model" status="i" var="variable"> 
    if(condition1){ 
    //code1 
    return; 
    } 
    else{ 
    //else for code1 
    } 
    if(condition2){ 
    //code2 
    return; 
    } 
    else{ 
    //else for code2 
    } 
</g:each> 

我想執行既克,如果條件:每一個,並打破出只有當這兩個條件都滿足。但是會發生什麼,如果某條件在第一條語句中變得真實,那麼它就會突破g:每條。 任何解決方案?

+0

如果將其封裝到函數中,然後調用它會發生什麼。 – Manu

+0

http://grails.github.io/grails-doc/latest/ref/Tags/if.html – cfrick

+0

@Manu:我無法將它包裝到一個函數中,因爲我使用的變量來自g:每個都在if語句中,並且該變量將不會在g之外訪問:每個 –

回答

1

這裏發生了什麼事是你的gsp代碼正在生成JavaScript代碼塊; model集合中的每個對象的一組if塊。它實際上並沒有從g:each中「爆發」,因爲當JavaScript代碼運行時,g:each已經長時間運行。 g:each在服務器上運行,而不運行if塊並且JavaScript代碼在瀏覽器上運行。

看看生成的HTML。我懷疑你的bug與Grails變量沒有解析成JavaScript代碼有關,也可能是一些邏輯錯誤。那些回報聲明看起來很可疑。