形成具有消化功能的元素

时间:2011-06-26 15:32:30

标签: haskell digestive-functors

Digestive-functors-blaze会创建类似<input type="text" id="foo" name="foo" /><label for="foo">Bar</label>的html,但我找不到任何标准方法,例如最后添加<br />

我想出了这个:

br :: (Monad m) => HappstackForm m H.Html BlazeFormHtml ()
br = Common.label $ \_ -> do
  createFormHtml $ \cfg -> do
    H.br

我可以用<++附加它,它可以达到我的预期,但我想知道这是否是预期的方式?

此外,如何扩展例如fieldsets。

1 个答案:

答案 0 :(得分:2)

这是预期的方式,尽管br在编写为:{/ p>时会更加清晰

br :: Monad m
   => Form m i e BlazeFormHtml ()
br = view $ createFormHtml $ const H.br

无论如何,我认为这个定义有点麻烦所以我在viewHtml添加了Text.Digestive.Forms.Html函数:

viewHtml :: Monad m => a -> Form m i e (FormHtml a) ()
viewHtml = view . createFormHtml . const

这可以在digestive-functors-0.1.0.1中找到。使用这个新的组合器,您应该能够使用<++ viewHtml H.br - 我希望这会有所帮助。