【发布时间】:2013-08-02 22:54:28
【问题描述】:
为了可重用性,我想在另一个小部件中重用。例如,小部件文件 blogpost.hamlet 可以包含帖子的显示方式,blog.hamlet 可以包含完整的博客。
blog.hamlet 的以下内容不起作用:
$forall post <- posts
^{widgetFile "blogpost")
那么,将一个小部件嵌入另一个小部件的正确语法是什么?
【问题讨论】:
为了可重用性,我想在另一个小部件中重用。例如,小部件文件 blogpost.hamlet 可以包含帖子的显示方式,blog.hamlet 可以包含完整的博客。
blog.hamlet 的以下内容不起作用:
$forall post <- posts
^{widgetFile "blogpost")
那么,将一个小部件嵌入另一个小部件的正确语法是什么?
【问题讨论】:
Hamlet 语法不支持在其中嵌入 Template Haskell 拼接,这使得您正在寻找的代码不可能实现。相反,您需要在 Haskell 中创建一个辅助函数,例如:
blogpost post = $(widgetFile "blogpost")
那么在 blog.hamlet 中,你可以有:
$forall post <- posts
^{blogpost post}
【讨论】:
Foundation.hs:73:27: Not in scope: ‘loginArea’ In the splice: $(hamletFile "templates/default-layout-wrapper.hamlet")