开发者

Form elements with digestive-functors

开发者 https://www.devze.com 2023-03-15 07:01 出处:网络
Digestive-functors-blaze creates html like <input type=\"text\" id=\"foo\" name=\"foo\" /><label for=\"foo\">Bar</label>, but I didn\'t find any standard way to for example add <b

Digestive-functors-blaze creates html like <input type="text" id="foo" name="foo" /><label for="foo">Bar</label>, but I didn't find any standard way to for example add <br /> to the end.

I came up with this:

br :: (Monad m) =&开发者_如何学Gogt; HappstackForm m H.Html BlazeFormHtml ()
br = Common.label $ \_ -> do
  createFormHtml $ \cfg -> do
    H.br

I can append it with <++ which does what I expect it to, but I wonder whether this is the intended way?

Also how would this extend with for example fieldsets.


This is the intended way, although br would be a little cleaner when written as:

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

Anyway, I figured this definition is a little cumbersome so I added a viewHtml function to Text.Digestive.Forms.Html:

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

This is available in digestive-functors-0.1.0.1. Using this new combinator, you should be able to just use <++ viewHtml H.br — I hope this helps.

0

精彩评论

暂无评论...
验证码 换一张
取 消