Я пытаюсь выучить Golang. Я хочу просто отправлять данные для просмотра. Но данные не доходят до main. gohtml. Я не мог понять причину. Если я распечатаю данные из define
, это сработает. Но если я хочу напечатать данные в define "content"
(идет в main. gohtml), данные будут пустыми.
define "title"
деталь работает. Просто я не могу отправить данные с переменной. Если я удалю часть {{.text}}
и напишу что-нибудь, все заработает.
main. go file
var tpl *template.Template
func init() {
tpl = template.Must(template.ParseGlob("template/*.gohtml"))
}
func main() {
http.HandleFunc("/about", fabout)
http.ListenAndServe(":80", nil)
}
func fabout(w http.ResponseWriter, r *http.Request) {
values, isset := r.URL.Query()["text"]
var value string
if isset == true {
value = values[0]
} else {
value = ""
}
data := map[string]interface{}{
"text": value,
}
tpl.ExecuteTemplate(w, "about.gohtml", data)
}
о. gohtml
{{template "main"}}
{{define "title"}}About me{{end}} //this is working
{{define "content"}}{{.text}}{{end}} //this is not working
{{.text}} //this is working
основной. gohtml
{{define "main"}}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{template "title"}}</title>
</head>
<body>
<ul>
<li><a href="">Page 1</a></li>
<li><a href="">Page 2</a></li>
<li><a href="">Page 3</a></li>
<li><a href="">Page 4</a></li>
<li><a href="">Page 5</a></li>
</ul>
<div style="padding:100px 0;">{{template "content"}}</div>
<footer>
this is footer
</footer>
</body>
</html>
{{end}}