Itération HTML dans les modèles Golang
Dans Golang, lorsque vous parcourez une liste d'éléments dans un modèle, vous pouvez utiliser le {{range }} action. Cependant, il nécessite un tableau ou une tranche pour parcourir. Pour répéter une ligne HTML plusieurs fois, nous pouvons créer une tranche vide et la remplir soit avec une valeur nulle, soit avec des valeurs spécifiques.
Utilisation d'une tranche à valeur nulle
Nous peut créer une tranche vide make([]struct{}, n) pour représenter le nombre d'itérations dont nous avons besoin. Ensuite, dans le modèle, nous utilisons la syntaxe {{range}}${} pour parcourir la tranche. Par exemple :
tmpl := template.Must(template.New("").Parse(` <ul> {{range $idx, $e := .}} <li><a href="/?p={{idx}}">{{$idx}}</a></li> {{end}} </ul>`)) n := 5 tmpl.Execute(w, make([]struct{}, n))
Utilisation d'une tranche remplie
Alternativement, nous pouvons remplir la tranche avec des valeurs spécifiques. Cette approche nous permet de ne pas utiliser l'index ($idx) dans le code HTML. Par exemple :
tmpl := template.Must(template.New("").Parse(` <ul> {{range .}} <li><a href="/?p={{.}}">{{.}}</a></li> {{end}} </ul>`)) values := make([]int, 5) for i := range values { values[i] = i + 1 } tmpl.Execute(w, values)
Utilisation d'une tranche à valeur nulle et d'une fonction personnalisée
Une autre option consiste à créer une fonction personnalisée qui ajoute 1 à l'index de tranche et renvoie le résultat. Cela vous permet d'utiliser les indices de tranche tout en incrémentant les nombres de 1. Par exemple :
tmpl := template.Must(template.New("").Funcs(template.FuncMap{ "Add": func(i int) int { return i + 1 }, }).Parse(` <ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?p={{$idx}}">{{$idx}}</a></li> {{end}} </ul>`)) n := 5 tmpl.Execute(w, make([]struct{}, n))
Ces approches offrent des moyens flexibles de répéter une ligne HTML plusieurs fois en fonction de vos besoins spécifiques.
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!