Wie kann ich Basisvorlagen im HTML/Template-Paket von Go implementieren?

Mary-Kate Olsen
Freigeben: 2024-11-10 09:38:02
Original
175 Leute haben es durchsucht

How can I implement Base Templates in Go's HTML/Template package?

Basisvorlagen in Gos HTML/Template implementieren

Bei der Arbeit mit komplexen Layouts in Webanwendungen ist es oft nützlich, eine Basisvorlage zu erstellen, die als Grundlage für andere dient Seiten. Im HTML/Template-Paket von Go kann dies mithilfe der Direktiven {{define}} und {{template}} erreicht werden.

Betrachten Sie das folgende Beispiel, in dem Sie eine Basislayoutdatei (base.html) haben:

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

header...

{{template "content" .}}

footer...

</body>
</html>
Nach dem Login kopieren

Und separate Seiten (Seite1.html und Seite2.html), die dieses Basislayout mit ihrem eigenen benutzerdefinierten Inhalt wiederverwenden:

{{define "content"}}
<div>
    <h1>Page1</h1>
</div>
{{end}}
{{template "base.html"}}
Nach dem Login kopieren
{{define "content"}}
<div>
    <h1>Page2</h1>
</div>
{{end}}
{{template "base.html"}}
Nach dem Login kopieren

Das Problem, auf das Sie stoßen, ist folgendes Sowohl Seite 1 als auch Seite 2 verwenden denselben HTML-Code zum Rendern, der in page2.html definiert ist. Um dies zu beheben, müssen wir sicherstellen, dass beide Seiten ihre eigenen eindeutigen Inhaltsabschnitte innerhalb des {{template}}-Blocks deklarieren und verwenden.

Ein besserer Ansatz besteht darin, den Vorlageninhalt wie gezeigt in separaten Dateien zu definieren unten:

base.html:

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

header...

{{template "content" .}}

footer...

</body>
</html>
{{end}}
Nach dem Login kopieren

page1.html:

{{define "content"}}
I'm page 1
{{end}}
Nach dem Login kopieren

page2 .html:

{{define "content"}}
I'm page 2
{{end}}
Nach dem Login kopieren

In Ihrer Anwendung können Sie dann den Inhalt und die Basisvorlagendateien mithilfe von template.New() und ParseFiles() in ein Vorlagenobjekt analysieren. Anschließend können Sie den endgültigen HTML-Code erstellen, indem Sie die Basisvorlage mit Ihrem gewünschten Kontext mit ExecuteTemplate() ausführen.

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

Das obige ist der detaillierte Inhalt vonWie kann ich Basisvorlagen im HTML/Template-Paket von Go implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage