"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo implementar plantillas base en el paquete HTML/Plantilla de Go?

¿Cómo puedo implementar plantillas base en el paquete HTML/Plantilla de Go?

Publicado el 2024-11-20
Navegar:681

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

Implementación de plantillas base en HTML/Plantilla de Go

Cuando se trabaja con diseños complejos en aplicaciones web, suele ser útil crear una plantilla base que sirva como base para otras páginas. En el paquete html/template de Go, esto se puede lograr usando las directivas {{define}} y {{template}}.

Considere el siguiente ejemplo donde tiene un archivo de diseño base (base.html):




header...

{{template "content" .}}

footer...


Y páginas separadas (page1.html y page2.html) que reutilizan este diseño base con su propio contenido personalizado:

{{define "content"}}

Page1

{{end}} {{template "base.html"}}
{{define "content"}}

Page2

{{end}} {{template "base.html"}}

El problema que estás encontrando es que tanto la página 1 como la página 2 utilizan el mismo HTML para la representación, que se define en page2.html. Para solucionar esto, debemos asegurarnos de que ambas páginas declaren y utilicen sus propias secciones de contenido únicas dentro del bloque {{template}}.

Un mejor enfoque es definir el contenido de la plantilla en archivos separados, como se muestra a continuación:

base.html:

{{define "base"}}




header...

{{template "content" .}}

footer...



{{end}}

page1.html:

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

page2.html:

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

En su aplicación, puede analizar el contenido y los archivos de plantilla base en un objeto de plantilla usando template.New() y ParseFiles(). Posteriormente, puede crear el HTML final ejecutando la plantilla base con el contexto deseado usando ExecuteTemplate().

tmpl, err := template.New("").ParseFiles("page1.html", "base.html")
// check your err
err = tmpl.ExecuteTemplate(w, "base", yourContext)
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3