2014-05-12 52 views
0

根據條件生成HTML標籤屬性的更好方法是什麼?我在模塊中有一個外部函數,可以給我一些價值(例如Bool)。並根據我需要或不需要添加一個類到標籤。這個元素有孩子。Yesod,Hamlet,根據條件生成標籤屬性

<tr *class should be here*> 
    <td> 
    ... 

回答

0

由於Hamlet允許在插值中應用函數,因此可以簡單地使用該函數。示例演示:

{-# LANGUAGE QuasiQuotes #-} 

import Text.Hamlet (shamlet) 
import Text.Blaze.Html.Renderer.String (renderHtml) 

myClass :: Bool -> String 
myClass _ = "dummyClass" 

main :: IO() 
main = putStrLn $ renderHtml [shamlet| 
<tr .#{myClass True}> 
    <td> dummy text |] 

在ghci的:

λ> main 
<tr class="dummyClass"><td> dummy text </td> 
</tr> 
+0

謝謝!函數在hamlet被轉換爲純HTML之前有效,好的。 – SDmitry