Accès au pipeline parent dans la plage dans les actions du modèle
Dans les modèles Go, il est courant d'utiliser des pipelines de plage pour parcourir des tranches ou des cartes. Cependant, un problème fréquent survient lorsque l’on tente d’accéder à des données en dehors de la portée immédiate du pipeline. Cet article explique comment y parvenir.
Utilisation de la variable $ (recommandé)
La documentation texte/modèle précise que lorsque l'exécution commence, la variable $ fait référence aux données argument passé à Execute. Cela signifie que nous pouvons accéder aux données de portée externe en utilisant $.variable.
Par exemple, considérons ce modèle :
const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
Ici, .Files fait référence à une tranche de fichiers, mais nous souhaitez accéder au chemin de la structure scriptFiles englobante. L'utilisation de $.Path nous permet de le faire.
Utilisation d'une variable personnalisée (méthode héritée)
Une méthode alternative consiste à créer une variable personnalisée à transmettre dans la portée de la plage , comme démontré dans ce modèle :
const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
En définissant $p sur .Path avant le pipeline de plage, nous pouvons accéder au chemin dans le pipeline.
Remarque : La méthode $ variable est recommandée car c'est l'approche la plus concise et idiomatique dans les versions Go actuelles.
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!