如何使用结构中的数据在 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 行。