我似乎无法理解如何使用heist获取表单数据。 我刚开始研究Haskell Web框架,但文档有点......稀缺,至少可以说。在snap网站上的skinny heist教程中没有提到表单。 所以给定一个简单的html表单,如何获取表单数据以处理我的处理函数?任何人都可以指点我的教程,谷歌只是保持沉默在这一个?或者也许是一个简短的例子......
另外,我在哪里可以获得有关条件控制的信息?比方说,如果我想在我的页面中有条件地包含html的某些部分,我该如何使用heist?基本上,“if”在哪里?
由于
答案 0 :(得分:2)
请参阅Using digestive functors with Heist以获取有关简单表单的精彩教程,并mightybyte's musings了解有关抢劫的信息。如果您打算使用multipart/form-data
,请使用Snap.Util.FileUploads
模块。
您可以使用Splice
根据条件生成内容
Splice
会返回Node
的列表,
mySplice = do
-- get environment conditions
-- condition could be passed in as a parameter
if condition
then return [] -- do nothing
else return [TextNode "some content"] -- see Text.XmlHtml
然后,您可以使用以下内容将此拼接绑定到标记:
bindSplice myTag mysplice defaultHeistState
将<myTag/>
放在模板中。当Heist
呈现模板时,它会在遇到标记时评估拼接并将值插入其位置。