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

Mary-Kate Olsen
Lepaskan: 2024-11-10 09:38:02
asal
196 orang telah melayarinya

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>
Salin selepas log masuk

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"}}
Salin selepas log masuk
{{define "content"}}
<div>
    <h1>Page2</h1>
</div>
{{end}}
{{template "base.html"}}
Salin selepas log masuk

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}}
Salin selepas log masuk

halaman1.html:

{{define "content"}}
I'm page 1
{{end}}
Salin selepas log masuk

halaman2 .html:

{{define "content"}}
I'm page 2
{{end}}
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan