"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 transmettre des données comme arguments à un modèle inclus dans le système de modèles GO \ s?

Comment puis-je transmettre des données comme arguments à un modèle inclus dans le système de modèles GO \ s?

Publié le 2025-03-24
Parcourir:331

How can I pass data as arguments to an included template in Go\'s templating system?

transmettant des données entre les modèles

dans le système de modèles de Go, il peut être nécessaire de transmettre des données entre plusieurs modèles, en particulier lorsque vous incluez un modèle dans un autre. La question se pose: "Comment puis-je transmettre des données comme arguments à un modèle inclus et y accéder dans ce modèle?"

pour y parvenir, vous pouvez utiliser une fonction personnalisée qui fusionne les arguments en une seule valeur de tranche. En enregistrant cette fonction, il peut être utilisé dans l'invocation du modèle. Le code suivant montre comment cela se fait:

package main

import (
    "fmt"
    "html/template"
)

func main() {
    t, err := template.New("t").Funcs(template.FuncMap{
        "args": func(vs ...interface{}) []interface{} { return vs },
    }).Parse("{{ template \"image_row\" args . 5 }}")
    if err != nil {
        fmt.Println(err)
        return
    }

    err = t.Execute(template.Must(template.ParseFiles("index.html", "image_row.html")), nil)
    if err != nil {
        fmt.Println(err)
        return
    }
}

// index.html
{{ template "image_row" . | 5 }}

// image_row.html
{{ define "image_row" }}
   To stuff here {{index . 0}} {{index . 1}}
{{ end }}

Dans le modèle Image_Row, les arguments sont accessibles à l'aide de la fonction d'index intégrée. Par exemple, {{index. 0}} accéderait au premier argument (index 0) passé du modèle index.html, dans ce cas, le numéro 5.

Cette solution fournit un moyen polyvalent de passer et d'accès aux données entre plusieurs modèles, permettant une fonctionnalité personnalisée et une réutilisation efficace de code.

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