gpt4 book ai didi

haskell - 在 Yesod 之外使用 Julius

转载 作者:行者123 更新时间:2023-12-02 14:13:12 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 yesod 之外使用独立的 Julius 发出 Javascript 代码:

{-# LANGUAGE QuasiQuotes #-}

import qualified Data.Text.Lazy.IO as LazyIO
import Text.Julius

main = do
let delta = 1 :: Int
LazyIO.putStrLn $ renderJavascript $ [julius|
function f(x) {
return x + #{delta};
}
|] undefined

但我收到此错误:

t2.hs:8:48:
No instance for (ToJavascript Integer)
arising from a use of ‘toJavascript’
In the expression: toJavascript delta
...

请帮忙。我不知道它需要什么,我刚刚开始关注朱利叶斯。如果我删除插值,那么它会成功渲染文本。

最佳答案

试试这个:

import qualified Data.Text.Lazy.IO as LazyIO
import Text.Julius
import Data.Aeson

main = do
let delta = toJSON (1 :: Int)
LazyIO.putStrLn $ renderJavascript $ [julius|
function f(x) {
return x + #{delta};
}
|] undefined

说明:

错误消息表明 delta 需要有一个 ToJavascript 实例。查找 ToJavascript 类显示这些实例是默认定义的:

ToJavascript Bool    
ToJavascript Value
ToJavascript RawJavascript

缺少 Int(或 Integer)实例解释了错误消息。

但是,有一个 Value 实例,通过使用 Aeson 库中的 toJSON,我们可以将 Int 转换为

关于haskell - 在 Yesod 之外使用 Julius,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31846518/

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