Элементы формы с пищеварительными функторами
Пищеварительные-функторы-Blaze создает HTML как <input type="text" id="foo" name="foo" /><label for="foo">Bar</label>
, но я не нашел никакого стандартного способа, например, добавить <br />
к концу.
Я придумал это:
br :: (Monad m) => HappstackForm m H.Html BlazeFormHtml ()
br = Common.label $ \_ -> do
createFormHtml $ \cfg -> do
H.br
Я могу добавить это с <++
что делает то, что я ожидаю, но мне интересно, так ли это?
Также как это будет распространяться, например, на наборы полей.
1 ответ
Решение
Это намеченный способ, хотя br
будет немного чище, когда написано как:
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
Это доступно в пищеварительных функторах-0.1.0.1. Используя этот новый комбинатор, вы сможете просто использовать <++ viewHtml H.br
- Надеюсь, это поможет.