【问题标题】:Form elements with digestive-functors具有消化功能的元素
【发布时间】:2011-06-26 15:32:30
【问题描述】:

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

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

这将如何扩展例如字段集。

【问题讨论】:

    标签: haskell digestive-functors


    【解决方案1】:

    这是预期的方式,尽管br 写成这样会更简洁:

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

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

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

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

    【讨论】:

    • 谢谢。我会尝试看看字段集是如何工作的,然后我会将其标记为答案
    猜你喜欢
    • 2013-10-29
    • 2012-05-08
    • 2021-11-09
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多