forms - 如何使用带有路由参数的 hamlet 模板?
问题描述
我正在开发基于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 文件/处理程序中是如何完成的?
解决方案
答案是 .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")
推荐阅读
- cordova - 科尔多瓦文件系统覆盖字符串
- r - R 中的 XGBoost 解释器 - 如何对特征贡献实施约束?
- python-3.x - Pygmo 2:控制内存分配
- angular - 我应该怎么做才能使用 grails 3 和 Angular 创建一个 Web 应用程序?
- java - Spring Boot Index-Page 在 Docker 容器中返回 403
- ios - UICollectionView shouldShowMenuForItemAt 未调用
- android - MPAndroidChart:自定义 Y 轴上的毕业步骤
- visual-studio-code - 有没有办法用 vscode.workspace.createFileSystemWatcher 观察多种文件类型
- google-admin-sdk - 需要查明用户何时被暂停
- google-maps-api-3 - Google Maps API - 自定义某些控件的外观