Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh melaksanakan Templat Asas dalam pakej HTML/Templat Go?

Bagaimanakah saya boleh melaksanakan Templat Asas dalam pakej HTML/Templat Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 09:38:02240semak imbas

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

Melaksanakan Templat Asas dalam HTML/Templat Go

Apabila bekerja dengan reka letak yang kompleks dalam aplikasi web, selalunya berguna untuk mencipta templat asas yang berfungsi sebagai asas untuk yang lain. muka surat. Dalam pakej html/template Go, ini boleh dicapai menggunakan arahan {{define}} dan {{template}}.

Pertimbangkan contoh berikut di mana anda mempunyai fail reka letak asas (base.html):

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

header...

{{template "content" .}}

footer...

</body>
</html>

Dan halaman berasingan (page1.html dan page2.html) yang menggunakan semula reka letak asas ini dengan tersuai mereka sendiri kandungan:

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

Isu yang anda hadapi ialah kedua-dua halaman 1 dan halaman 2 menggunakan HTML yang sama untuk pemaparan, yang ditakrifkan dalam page2.html. Untuk menangani perkara ini, kami perlu memastikan bahawa kedua-dua halaman mengisytiharkan dan menggunakan bahagian kandungan unik mereka sendiri dalam blok {{template}}.

Pendekatan yang lebih baik ialah mentakrifkan kandungan templat dalam fail berasingan, seperti yang ditunjukkan di bawah:

base.html:

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

header...

{{template "content" .}}

footer...

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

halaman1.html:

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

halaman2 .html:

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

Dalam aplikasi anda, anda boleh menghuraikan kandungan dan asas fail templat ke dalam objek templat menggunakan template.New() dan ParseFiles(). Selepas itu, anda boleh membina HTML akhir dengan melaksanakan templat asas dengan konteks yang anda inginkan menggunakan ExecuteTemplate().

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

Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan Templat Asas dalam pakej HTML/Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn