Maison >développement back-end >Golang >Comment fonctionnent les modèles de base dans Golang HTML/Template ?

Comment fonctionnent les modèles de base dans Golang HTML/Template ?

DDD
DDDoriginal
2024-11-08 11:00:02462parcourir

How do Base Templates Work in Golang HTML/Template?

Utilisation de modèles de base dans Golang HTML/Template

Dans votre scénario donné, vous êtes confronté à un malentendu concernant l'utilisation des modèles de base. Le problème réside dans votre conviction que les pages 1 et 2 utilisent le même modèle alors qu'en réalité, elles font référence au même modèle de base et définissent des sections de contenu uniques.

Utilisation canonique des modèles de base

Pour utiliser efficacement les modèles de base, suivez ces étapes :

  1. Définissez plusieurs Modèles : Créez un modèle de base (par exemple, base.html) contenant la mise en page commune de votre site. Définissez des sections de contenu spécifiques dans ce modèle de base à l'aide de {{define "content"}}.
  2. Créez des modèles de contenu : Pour chaque page unique de votre site, créez des modèles distincts (par exemple, page1. html, page2.html). Dans ces modèles, définissez le contenu à afficher dans la section « contenu » du modèle de base à l'aide de {{define "content"}}.
  3. Inclure le modèle de base : Dans chaque modèle de contenu , demandez au moteur de modèle d'inclure le modèle de base à l'aide de {{template "base.html"}}. Cela garantit que la mise en page de base est utilisée comme cadre pour chaque page.

Exemple de mise en œuvre

Vous trouverez ci-dessous un exemple de mise en œuvre basé sur ce que vous avez fourni. code :

base.html

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

header...

{{template "content" .}}

footer...

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

page1.html

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

page2.html

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

Analyse de modèles et Exécution
Une fois vos modèles définis, vous pouvez les analyser à l'aide de template.New("").ParseFiles(page1.html, base.html)) et les exécuter avec tmpl.ExecuteTemplate(w, "base" , votreContexte).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn