2015-05-02 3 views
1

Это фрагмент кода из O reilly - Yesod - Widgets,Недостающие импорт из библиотек Гамлет

getRootR = defaultLayout $ do 
    setTitle "My Page Title" 
    toWidget [lucius| h1 { color: green; } |] 
    addScriptRemote "https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" 
    toWidget [julius| 
     $(function() { 
     $("h1").click(function(){ alert("You clicked on the heading!"); }); 
     }); 
    |] 
    toWidgetHead [hamlet| <meta name=keywords content="some sample keywords">|] 
    toWidget [hamlet| <h1>Here's one way of including content |] 
    [whamlet| <h2>Here's another |] 
    toWidgetBody [julius| alert("This is included in the body itself"); |] 

Этот код выдает ошибку,

widget.hs:3:12: Not in scope: ‘defaultLayout’ 
widget.hs:4:3: Not in scope: ‘setTitle’ 
widget.hs:5:3: Not in scope: ‘toWidget’ 

Какие модули из Hamlet, мне нужно импортировать, чтобы сделать это Работа? У haskell есть функция автозаполнения, которая будет пытаться искать и автоматически импортировать имена модулей?

+1

Вы импортировали 'Yesod.Core' и' Yesod.Core.Widget'? – Sibi

+0

, который решил ошибки 'undefined'. спасибо, сиби –

ответ

2

Импорт Yesod.Core и Yesod.Core.Widget, они предоставят соответствующие функции.

Также имейте в виду, что у них есть online version книги. И вообще, если вы видите ошибки импорта, выполните поиск в Hoogle, и в большинстве случаев вы, вероятно, найдете там решение.