Maison >développement back-end >Golang >Comment accéder au pipeline parent/global dans l'action de plage des modèles Go ?
Accès au pipeline parent/global dans l'action de plage des modèles Go
Dans le package texte/modèle de Go, la possibilité d'accéder aux pipelines avant un l’action de plage ou le pipeline parent/global est essentiel. Prenons l'exemple suivant :
const page = `{{range .Files}}<script src="{{html .Path}}/js/{{html .}}"></script>{{end}}` type scriptFiles struct { Path string Files []string } func main() { t := template.New("page") t = template.Must(t.Parse(page)) t.Execute(os.Stdout, &scriptFiles{"/var/www", []string{"go.js", "lang.js"}}) }
Dans cet exemple, l'accès à .Path ne sera pas possible dans l'action de plage car .dot se transforme en l'élément Files actuel.
Recommandé Solution - Utilisation de la variable $
Selon la documentation du package texte/modèle, la variable $ contient l'argument de données transmis à Execute, qui est la valeur initiale de .dot. Ainsi, pour accéder au chemin de la portée externe à l'aide de $.Path dans l'action de plage, utilisez la variante suivante :
const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
Solution alternative - Variable personnalisée
Avant l'action de plage, une variable personnalisée peut être définie pour transmettre une valeur dans la portée de la plage. Par exemple :
const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
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!