如何使用结构中的数据在 Go 中生成 html
how to generate html in Go with data from struct
我有一个 html 这样的 email.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Shareholder</title>
</head>
<body>
<h1> {{.PageTitle}} </h1>
</body>
</html>
我这样称呼:
func main() {
theTemplateHTML, err := template.New("").ParseFiles("./pkg/template/email.html")
if err != nil {
log.Fatal(err)
}
log.Println(theTemplateHTML)
type Email struct {
PageTitle string
}
var email Email
email = Email{
PageTitle: "Hello Word",
}
err = theTemplateHTML.Execute(os.Stdout, &email)
if err != nil {
log.Fatal(err)
}
log.Println(theTemplateHTML)
}
第一个日志的输出是 &{<nil> 0xc0000b0080 <nil> 0xc0000d0050}
最后一个日志我得到了这样的错误 template: "" is an incomplete or empty template
是html的输出吗?以及如何在 html 中定义 {{.PageTitle}}
with stuct ??
如何更正在其中定义结构的方式 html 并能够按字符串查看结果,因为我希望该模板是字符串?
您不需要 template.New("")
调用。 template.ParseFiles("./pkg/template/email.html")
会起作用。
编辑:您还需要删除最后 log.Println
行。
我有一个 html 这样的 email.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Shareholder</title>
</head>
<body>
<h1> {{.PageTitle}} </h1>
</body>
</html>
我这样称呼:
func main() {
theTemplateHTML, err := template.New("").ParseFiles("./pkg/template/email.html")
if err != nil {
log.Fatal(err)
}
log.Println(theTemplateHTML)
type Email struct {
PageTitle string
}
var email Email
email = Email{
PageTitle: "Hello Word",
}
err = theTemplateHTML.Execute(os.Stdout, &email)
if err != nil {
log.Fatal(err)
}
log.Println(theTemplateHTML)
}
第一个日志的输出是 &{<nil> 0xc0000b0080 <nil> 0xc0000d0050}
最后一个日志我得到了这样的错误 template: "" is an incomplete or empty template
是html的输出吗?以及如何在 html 中定义 {{.PageTitle}}
with stuct ??
如何更正在其中定义结构的方式 html 并能够按字符串查看结果,因为我希望该模板是字符串?
您不需要 template.New("")
调用。 template.ParseFiles("./pkg/template/email.html")
会起作用。
编辑:您还需要删除最后 log.Println
行。