Как использовать шаблон деревушки с параметром маршрута? - PullRequest
0 голосов
/ 26 мая 2018

Я работаю над приложением yesod, основанным на шаблоне стека yesod-postgres.У меня есть маршрут, определенный в config/routes, который имеет форму:

foo/edit/#Text EditFooR GET

В моем шаблоне деревушки я хочу написать

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

                    <button type="submit">
                        Submit

, а в своем обработчике я бы хотелwrite:

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

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

За исключением того, что мне нужно предоставить параметр для маршрута @{EditFooR}.Как это делается в файле / обработчике Гамлета?

1 Ответ

0 голосов
/ 27 мая 2018

Ответ заключается в том, что шаблон .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")
...