Ich habe 3 Dateien hier in Golang-Projekt, die Idee ist es, die index.html isnside den Körper von layout.html. Es klappt.Variable innerhalb definieren Vorlage in Golang
Aber als ich versuchte, eine Variable in die index.html übergeben, wurde die console.log()
nicht gerendert. Wenn ich die console.log()
zu layout.html verschiebe, kann ich den Inhalt der JSON von .tes
sehen.
Hier sind die Projektdateien.
layout.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{.title}} | {{.project_name}}</title>
</head>
<body style="width:100%; height: 100%; overflow-x: visible">
<div id="wrapper" style="width:100%; height:100%; margin: 0 auto">
{{template "contents"}}
</div>
</body>
</html>
index.html
{{define "contents"}}
<script>
var x = {{.tes}};
console.log(x)
</script>
{{end}}
router.go
func init() {
// handler
http.HandleFunc("/", RenderPage)
}
func RenderPage(w http.ResponseWriter, r *http.Request) {
tes := map[string]interface{}{
"item":"TEST3",
"count":4567,
}
Data := map[string]interface{}{
"title":"TEST1",
"project_name":"TEST2",
"tes":M.ToJSON(tes),
}
tmpl, err := template.ParseFiles("page/layout.html", "page/index.html")
X.CheckError(err)
err = tmpl.Execute(w, Data)
X.CheckError(err)
}
Überprüfen Sie diese http://stackoverflow.com/questions/19546896/golang-template-how-to-render-templates – CESCO