2016-04-14 19 views
1

Gin-gonic web uygulamasına sahip ol./Page1Golang html/template için temel şablon dosyası nasıl kullanılır?

{{define "content"}} 
<div> 
    <h1>Page1</h1> 
</div> 
{{end}} 
{{template "base.html"}} 

3) Sayfa2'ye için, taban düzen dosyası

<!DOCTYPE html> 
<html lang="en"> 
<body> 

header... 

{{template "content" .}} 

footer... 

</body> 
</html> 

2) page1.html -

1) base.html:

3 dosya vardır. html, for/page2

{{define "content"}} 
<div> 
    <h1>Page2</h1> 
</div> 
{{end}} 
{{template "base.html"}} 

Sorun bu/page1 ve/page2 bir şablon kullanıyor - page2.html. Bu gibi yapıları yanlış anladığımı düşünüyorum: {{define "content"}}, {{template "base.html"}}.

Lütfen, golang'deki temel mizanpajların nasıl kullanılacağını gösteren bir örnek gösterebilir misiniz?

cevap

5

Sen şöyle sürece size "içerik" ile birlikte şablonu ayrıştırmak olarak base.html kullanabilirsiniz:

base.html

{{define "base"}} 
<!DOCTYPE html> 
<html lang="en"> 
<body> 

header... 

{{template "content" .}} 

footer... 

</body> 
</html> 
{{end}} 

page1.html

{{define "content"}} 
I'm page 1 
{{end}} 

page2.html

{{define "content"}} 
I'm page 2 
{{end}} 

sonra ParseFiles ("sayfanızın.html", "base.html") ve ExecuteTemplate içeriğinizle.

tmpl, err := template.New("").ParseFiles("page1.html", "base.html") 
// check your err 
err = tmpl.ExecuteTemplate(w, "base", yourContext)