【问题标题】:How to use hamlet template with route parameter?如何使用带有路由参数的 hamlet 模板?
【发布时间】:2018-05-26 14:28:11
【问题描述】:

我正在开发一个基于 yesod-postgres 堆栈模板的 yesod 应用程序。我在config/routes 中定义了一条路线,其形式为:

foo/edit/#Text EditFooR GET

在我的小村庄模板中,我想写

<form method=post action=@{EditFooR}#forms enctype=#{formEnctype}>
                    ^{formWidget}

                    <button type="submit">
                        Submit

在我的处理程序中我想写:

getEditFooR :: T.Text -> Handler Html
getEditFooR name = do
    ....
    text <- findTextByName name

    (formWidget, formEnctype) <- generateFormPost (editFooForm text)
    defaultLayout $ do
        $(widgetFile "editFoo")

除了我需要将参数提供给@{EditFooR} 路由。这在 Hamlet 文件/处理程序中是如何完成的?

【问题讨论】:

    标签: forms routes yesod hamlet


    【解决方案1】:

    答案是 .hamlet 模板应该具有以下格式:

    <form method=post action=@{EditFooR fooName}#forms enctype=#{formEnctype}>
                    ^{formWidget}
    
                    <button type="submit">
                        Submit
    

    Handler 的格式应为:

    getEditFooR :: T.Text -> Handler Html
    getEditFooR name = do
        ....
        text <- findTextByName name
        fooName <- "something or other"
    
       (formWidget, formEnctype) <- generateFormPost (editFooForm text)
           defaultLayout $ do
           $(widgetFile "editFoo")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      相关资源
      最近更新 更多