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.
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