2017-12-11 22 views

답변

2

참고. 위젯을 삽입하려면 whamlet을 사용하십시오.

또한 예 - 매개 변수를 위젯에 전달할 수 있습니다. 개념을 보여주는 예를 들어 스택 스크립트 :

#!/usr/bin/env stack 
{- stack 
    --resolver lts-9.0 
    --install-ghc 
    runghc 
    --package yesod-core 
    --package yesod 
    --package shakespeare 
-} 

{-# LANGUAGE OverloadedStrings #-} 
{-# LANGUAGE QuasiQuotes  #-} 
{-# LANGUAGE TemplateHaskell #-} 
{-# LANGUAGE TypeFamilies  #-} 
import   Yesod 

data App = App 
mkYesod "App" [parseRoutes| 
/HomeR GET 
|] 

instance Yesod App 

data Person = Person { id :: Int, name :: String, email :: String } deriving (Show, Eq, Ord) 

collections = [Person 1 "Sibi" "[email protected]", Person 2 "Michael" "[email protected]"] 


whamlet1 :: Widget 
whamlet1 = [whamlet| <p>hello 
        $forall Person _ pname pemail <- collections 
        ^{whamlet2 pname pemail} 
      |] 

whamlet2 :: String -> String -> Widget 
whamlet2 pname pemail = [whamlet| <h1> #{pname} #{pemail} |] 

getHomeR = defaultLayout $ do 
    setTitle "My Page Title" 
    toWidget [lucius| h1 { color: green; } |] 
    whamlet1 

main = warp 3000 App 

Yesod 책에 widgets chapter은 더 깊이를 설명합니다.

+0

@Sibi에 감사드립니다. 그 해결책은 내가 바라는 것이 아니라 내가 해결할 수있는 방법입니다. :) – Yunis