将Golang变量传递到Javascript中
我试图将Golang变量传递到Javascript文件中。我在网上读过多篇文章,包括。我觉得我已经很接近了,但遗憾的是,对于这个问题最雄辩的实现却让我难以理解 我正在寻找一个简单而优雅的解决方案,在Go中注入一个对象值,并在Javascript中加入一个变量。我觉得这是一个非常常见的问题,所以缺少关于这方面的清晰教程让我感到惊讶 我的第一个文件[server.go]使用Golang中的模板库(传递上下文并通过处理程序为它们提供服务)为HTML页面提供服务将Golang变量传递到Javascript中,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我试图将Golang变量传递到Javascript文件中。我在网上读过多篇文章,包括。我觉得我已经很接近了,但遗憾的是,对于这个问题最雄辩的实现却让我难以理解 我正在寻找一个简单而优雅的解决方案,在Go中注入一个对象值,并在Javascript中加入一个变量。我觉得这是一个非常常见的问题,所以缺少关于这方面的清晰教程让我感到惊讶 我的第一个文件[server.go]使用Golang中的模板库(传递上下文并通过处理程序为它们提供服务)为HTML页面提供服务 type PassStruct stru
type PassStruct struct{
data []int
number1 int
number2 int
}
//inject the structure into render
func render(w http.ResponseWriter, tmpl string, context Context){
//parse context and fill in templating variables using template
}
我现在有了一个HTML文档,它向其中添加了一个Javascript文件
<html>
<head>
//import javascript file
</head>
<body>
//some body
</body>
</html>
我需要将PassStruct发送到Javascript文件中,并将结构中的每个值映射到Javascript文件中的一个变量。我尝试过AJAX调用,但到目前为止还没有成功 这种方式可能有帮助: Html:
最后,在花了两天时间解决这个问题后,我找到了一个优雅的解决方法。 我们将使用模板来解决这个问题 阅读有关golang中模板使用的信息- 下面是在javascript中传递名为golangVar的golang变量的示例代码 HTML\u文件-
<html>
<head>
<script>
var golangVar = "{{.}}"
console.log(golangVar);
</script>
</head>
<body>
<!--some body-->
</body>
</html>
还有一个额外的小费-
如果您正在使用buffalo framework for golang,则可以使用默认的plush包进行模板制作。
它与我们在这里所做的类似,只是在语法和传递html文件方面做了一点更改。
阅读-
对于大多数模板语言来说,JSON编码是最安全的方式,请看,您找到解决此问题的方法了吗?
<html>
<head>
<!--import javascript file -->
<script type="text/javascript" src="static/myjs.js"></script>
<script type="text/javascript">
myFunc({{.}});
</script>
</head>
<body>
<!--some body-->
</body>
</html>
function myFunc(passStruct){
var obj = Object();
var data = passStruct.Data;
var number1=passStruct.Number1;
var number2=passStruct.Number2;
obj.data=data;
obj.number1=number1;
obj.number2=number2;
return obj;
}
<html>
<head>
<script>
var golangVar = "{{.}}"
console.log(golangVar);
</script>
</head>
<body>
<!--some body-->
</body>
</html>
func golangHttpHandler(w http.ResponseWriter, r *http.Request) {
var golangVar string
golangVar = "ProblemSolved"
templ, err := template.ParseFiles("/home/PathToHTMLPage/HTML_File.html")
if(err!=nil){
fmt.Println("Error = ",err)
}
err = templ.Execute(w, golangVar)
if(err!=nil){
fmt.Println("Error = ",err)
}
}