Maison > développement back-end > Golang > Comment afficher plusieurs modèles enfants dans un modèle de mise en page Go ?

Comment afficher plusieurs modèles enfants dans un modèle de mise en page Go ?

Mary-Kate Olsen
Libérer: 2024-12-15 05:28:08
original
835 Les gens l'ont consulté

How to Render Multiple Child Templates within a Go Layout Template?

Go Templates : rendu des modèles enfants dans une mise en page

Question :

Dans un Golang application, comment puis-je restituer plusieurs modèles enfants dans une mise en page parent modèle ?

Configuration :

Le problème implique quatre modèles : un modèle de mise en page layout.html et trois modèles enfants : tags.html, content.html et commentaire. html. Une structure Go est fournie pour contenir les données des modèles enfants.

Problème :

La question se pose de savoir comment restituer chaque modèle enfant et combiner les résultats dans la mise en page. modèle.

Implémentation Go :

Pour afficher les modèles enfants dans une mise en page, considérez le étapes suivantes :

  1. Analyser les chaînes du modèle : Analyser la mise en page et les chaînes du modèle enfant en un seul modèle à l'aide de la famille de fonctions template.Parse*.
  2. Créer un objet de données de modèle : Créez un objet de données qui contiendra les valeurs de tous les modèles enfants. Cet objet sera transmis à la fonction Execute ultérieurement.
  3. Définissez et analysez les modèles enfants dans la mise en page : Dans le modèle de mise en page, utilisez la directive {{template "childTemplateName"}} pour invoquer chaque modèle enfant. Le childTemplateName correspond au nom attribué dans la directive {{define "childTemplateName"}} du modèle enfant.
  4. Exécutez le modèle de mise en page : Transmettez l'objet de données du modèle à la fonction Execute. La fonction exécutera le modèle de mise en page, en appelant les modèles enfants selon les besoins et en les mettant en place.

Exemple de code :

package main

import (
    "fmt"
    "html/template"
    "os"
)

// Define the layout template
const layout = `
<html>
    <body>
        {{template "tags"}}
        {{template "content"}}
        {{template "comment"}}
    </body>
</html>`

// Define the child templates
const tags = `{{define "tags"}}
<div>{{.Name}}</div>
{{end}}`

const content = `{{define "content"}}
<div>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal