Accès en dehors de la valeur de la boucle dans la boucle du golang template

J’ai cette structure:

type Site struct { Name ssortingng Pages []int } 

Je passe une instance de Site à un modèle .

Si je veux écrire une liste de toutes les pages, je le fais

 {{range .Pages}} 
  • https://stackoverflow.com/questions/16734503/access-out-of-loop-value-inside-golang-templates-loop/{{.}}
  • {{end}}

    Maintenant, quelle est la manière la plus simple d’utiliser le champ Name à l’intérieur de la boucle (par exemple pour changer le href en Name/page )?

    Notez qu’une solution basée sur le fait que l’object externe est le global qui a été transmis au modèle serait OK.

    Vous devez savoir que la variable transmise au modèle est disponible sous la forme $ .

     {{range .Pages}} 
  • {{.}}
  • {{end}}

    (Voir la documentation sur les textes / modèles sous “Variables”.)

    Qu’en est-il de:

     {{$name := .Name}} {{range $page := .Pages}} 
  • {{$page}}
  • {{end}}

    Ou simplement faire de Pages une carte avec Nom comme valeur?

     type Site struct { Pages map[ssortingng]ssortingng } {{range $page, $name := .Pages}} 
  • {{$page}}
  • {{end}}

    Il semble qu’il n’y ait pas de solution plus simple que de déclarer explicitement une variable pour l’object externe (ou ses propriétés):

     {{$out := .}} {{range .Pages}} 
  • {{.}}
  • {{end}}

    EDIT: cette réponse n’est plus la bonne, regardez plutôt celle de Chowey.