Maison > développement back-end > Golang > le corps du texte

Comment transmettre des données aux modèles imbriqués dans le package « text/template » de Go ?

Mary-Kate Olsen
Libérer: 2024-10-26 08:32:30
original
463 Les gens l'ont consulté

 How to Pass Data to Nested Templates in Go's `text/template` Package?

Transmission de données entre les modèles Go

Dans le package texte/modèle de Go, il est possible d'imbriquer des modèles pour réutiliser des éléments HTML courants. Cependant, si vous devez transmettre des données supplémentaires à un fichier . modèle imbriqué, le mécanisme de modèle par défaut ne le prend pas en charge directement.

Pour y parvenir, vous pouvez créer une fonction personnalisée qui combine les arguments dans une tranche et la renvoie. Enregistrez cette fonction avec votre modèle, puis utilisez-la pour transmettre les arguments.

Voici un exemple :

package main

import (
    "text/template"
)

func main() {
    // Define the custom function to combine arguments
    func args(vs ...interface{}) []interface{} { return vs }

    // Parse the template with the custom function registered
    t, err := template.New("t").Funcs(template.FuncMap{"args": args}).Parse(...)
    if err != nil {
        // Handle error
    }

    // Render the template with the custom function
    t.ExecuteTemplate(..., template.Args(..., 5))

    // Access the arguments in the nested template
    {{ define "image_row" }}

       To stuff here {{index . 0}} {{index . 1}}

    {{ end }}
}
Copier après la connexion

Avec cette approche, vous pouvez transmettre dynamiquement des données supplémentaires aux modèles imbriqués, ce qui permet code HTML plus flexible et réutilisable.

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