"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 transmettre des données aux modèles inclus dans Go ?

Comment transmettre des données aux modèles inclus dans Go ?

Publié le 2024-11-24
Parcourir:654

How to Pass Data to Included Templates in Go?

Transmission de données aux modèles rendus dans Go

Les modèles In Go, y compris un autre modèle, sont un processus simple utilisant le {{ modèle "include- nom-modèle" }} syntaxe. Cependant, il devient parfois nécessaire de transmettre des données supplémentaires au modèle inclus.

Présentation de la transmission dynamique de paramètres

Envisagez un scénario dans lequel vous souhaitez transmettre un numéro à un modèle. , "image_row.html", qui utilise ce numéro pour construire des lignes de manière dynamique. Cela nécessite de transmettre le numéro comme argument supplémentaire à l'invocation du modèle.

Fonction personnalisée pour transmettre plusieurs arguments

Comme il n'existe pas de support intégré pour transmettre plusieurs arguments à un modèle, vous pouvez créer une fonction personnalisée pour fusionner les arguments en une seule tranche. Enregistrez cette fonction auprès de Funcs et utilisez-la dans l'invocation du modèle :

func args(vs ...interface{}) []interface{} { return vs }
t, err := template.New("t").Funcs(template.FuncMap{"args":args}).Parse...

Utilisation dans l'invocation de modèle

Dans le modèle principal, vous pouvez transmettre les arguments à l'aide de la fonction args :

{{ template "image_row" args . 5 }}

Accès aux arguments dans le modèle inclus

Dans "image_row.html", vous pouvez accéder aux arguments à l'aide de la fonction d'index intégrée :

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

Cette approche vous permet de transmettre des données dynamiques aux modèles rendus, ce qui permet une plus grande flexibilité dans la conception des modèles et la gestion des données.

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