gpt4 book ai didi

yesod - 将类型安全的 URL 与 setMessage 一起使用? (小村庄与小村庄)

转载 作者:行者123 更新时间:2023-12-01 11:46:02 27 4
gpt4 key购买 nike

如何通过 setMessage 使用类型安全的 url?

我要改变

 ...
setMessage [shamlet|<span .warning>Warning! See Help.|]
...

包含链接的消息。

据我目前收集到的信息,它应该以某种方式工作

 ...
renderer <- getUrlRender
let html = [hamlet|<span .warning>Warning! See #
<a href=@{HelpR}> Help!|]
setMessage $ toHtml $ html renderer
...

但该代码只是让我在整个文件中看到令人困惑的错误消息。

我确实阅读了关于莎士比亚模板的 Yesod Book Chapter,但我发现它对涉及的类型不是很明确。例如 [hamlet|...|]| 产生什么类型?如果没有 URL-Interpolation,ghci 会报告 t -> Markup 但在 URL-Interpolation 里面,我只会得到错误。

我对所涉及的所有类型同义词感到更加困惑,例如[shamlet|...|] 传递类型为 Html 的内容,而 setMessage 需要 Html ()。我不知道如何轻松地查找这些内容:Hoogle 通常找不到任何关于该主题的内容,而 Google 总是会找到可能过时的版本(带有不再有效的示例)——确保我最终获得了最新版本,但有一个地方可以我对这些有一个简单的了解吗? (ghci 可以列出一个类型的所有同义词吗?)

请注意,我实际上想在纯函数代码片段中生成消息,稍后由处理程序使用。所以这就是为什么我想将 URL 呈现与指定 hamlet 的位置分开。感谢任何指向正确方向的指示!

最佳答案

我想你想使用 getUrlRenderParams .奇怪的是,今天 IRC 上出现了一个相关的讨论。 Hamlet 模板将 URL 呈现函数作为其第一个参数,该函数必须采用两个参数:一个类型安全的 URL 和一个查询字符串参数列表。 getUrlRender 返回一个不采用查询字符串参数的函数,这就是您需要 getUrlRenderParams 的原因。

关于yesod - 将类型安全的 URL 与 setMessage 一起使用? (小村庄与小村庄),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15249515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com