"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je implémenter des modèles de base dans le package HTML/Template de Go ?

Comment puis-je implémenter des modèles de base dans le package HTML/Template de Go ?

Publié le 2024-11-20
Parcourir:754

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

Implémentation de modèles de base dans le modèle HTML/Go de Go

Lorsque vous travaillez avec des mises en page complexes dans des applications Web, il est souvent utile de créer un modèle de base qui sert de base à d'autres pages. Dans le package html/template de Go, cela peut être réalisé à l'aide des directives {{define}} et {{template}}.

Considérez l'exemple suivant où vous avez un fichier de mise en page de base (base.html) :




header...

{{template "content" .}}

footer...


Et des pages séparées (page1.html et page2.html) qui réutilisent cette mise en page de base avec leur propre contenu personnalisé :

{{define "content"}}

Page1

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

Page2

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

Le problème que vous rencontrez est que la page 1 et la page 2 utilisent le même HTML pour le rendu, qui est défini dans page2.html. Pour résoudre ce problème, nous devons nous assurer que les deux pages déclarent et utilisent leurs propres sections de contenu uniques dans le bloc {{template}}.

Une meilleure approche consiste à définir le contenu du modèle dans des fichiers séparés, comme indiqué. ci-dessous :

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}}

Dans votre application, vous pouvez ensuite analyser le contenu et les fichiers de modèle de base dans un objet modèle à l'aide de template.New() et ParseFiles(). Par la suite, vous pouvez créer le code HTML final en exécutant le modèle de base avec le contexte souhaité à l'aide de ExecuteTemplate().

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

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3