javascript - 使用 Go 读取文件以用于 javascript 渲染
问题描述
我看过很多关于 Go Arrays 与 Javascript 一起使用的文章,但我正在尝试做一些不同的事情。我想使用 Go 读取配置文件,因为它可以访问服务器端,并在将使用模板呈现的 javascript 函数中使用它。这是为了避免在 JavaScript 中硬编码值:
我想改变这个:
javaString += "function isValidPrefix() {"
javaString += "forbidden_prefixes = [ \"1\", \"2\", \"3\", \"4\", \"5\", \"6\" ];"
... more javascript ...
javaString += "}"
将前缀放在文件中的东西,这样我每次想添加前缀时都不必重新编译。
所以我尝试了这个:
var configArr []string
configArr = LoadFile("/conf.dat")
javaString += "forbidden_prefixes = [];"
for _, eachline := range configArr {
javaString += "forbidden_prefixes.push(\" + eachline + \");"
fmt.Println(eachline)
}
eachLine
在 for 循环中正确打印,但禁止前缀包含一个元素+ eachLine +
,我认为这是一个语法错误,但即使我尝试检索 DOM 元素的值来检查它,Web 控制台也会说该元素不存在。硬编码值一切正常。我做错了什么还是根本不可能?
解决方案
问题确实来自您的语法。您转义了引号,因此+
运算符实际上是字符串的一部分。以下是两种可能的解决方案:
javaString += "forbidden_prefixes.push(\"" + eachline + "\");"
或者
javaString += fmt.Sprintf("forbidden_prefixes.push(%q);", eachline)
%q
在它被替换的值周围添加引号。
推荐阅读
- mysql - 如果表存在但它是空的,则在sql表中加载数据
- angular - 如何以角度显示我刚刚从 httpClient.get() 获得的数据?
- api - 如何通过 URL(http) 创建 elasticsearch 文档文档
- azure - Azure Monitor“响应时间”和 AppInsights“持续时间”有什么区别?
- docusignapi - 通过 API 3.0 发送 DocuSign 信封不再触发提醒或过期警告
- python - 更正 Django 用户模型外键问题
- karate - 反对大的动态响应
- php - 如何在 Stripe Payment Intent 中修复客户端或服务器端的 3D 安全确认付款?
- c# - 如何取消任务类型集合中的特定任务
- php - 无法连接到命名空间类中的数据库