Элементы формы с пищеварительными функторами

Пищеварительные-функторы-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 - Надеюсь, это поможет.

Другие вопросы по тегам