如何使用widgetFile在另一个中包含一个hamlet文件?

时间:2012-05-28 23:52:24

标签: haskell yesod

为了可重用性,我想在另一个内部重用一个小部件。例如,窗口小部件文件blogpost.hamlet可以包含帖子的显示方式,blog.hamlet可以包含完整的博客。

blog.hamlet的以下内容工作:

$forall post <- posts
    ^{widgetFile "blogpost")

那么,将一个小部件嵌入另一个小部件的正确语法是什么?

1 个答案:

答案 0 :(得分:15)

Hamlet语法不支持在其中嵌入Template Haskell拼接,这使得您想要的代码无法实现。相反,您需要在Haskell中创建一个辅助函数,例如:

blogpost post = $(widgetFile "blogpost")

然后在blog.hamlet中,您可以:

$forall post <- posts
    ^{blogpost post}