在yesod应用程序中,我想为将由graphviz呈现的图形创建URL属性,并且我想使用插值。理想情况下,
graphToDot nonClusteredParams { fmtNode = \ (n,l) ->
[ URL [whamlet| @{MyRoute ...} |]
} g
当然,这些类型不匹配:
URL
的属性为纯Text
,但whamlet
为monadic(小部件)shamlet
替换时,类型很好,但无法插值:URL interpolation used, but no URL renderer provided
有一种简单的方法可以解决这个问题吗?
答案 0 :(得分:1)
这适用:获取渲染函数(在monad中),并应用(在纯代码中)
render <- getUrlRender
let d = graphToDot ...
[ URL $ render $ MyRoute ... ]
我在这里找到了这个问题,解决了类似的问题:https://github.com/yesodweb/yesod/wiki/Using-type-safe-urls-from-inside-javascript