Création de structures HTML répétitives avec des modèles Go
Dans les applications Web Go, il arrive parfois que la génération itérative d'éléments HTML devienne nécessaire. Par exemple, la création de liens de pagination dans une liste peut nécessiter de dupliquer plusieurs fois une ligne de code. Cet article présente une solution efficace utilisant les modèles Go et leurs capacités de bouclage inhérentes.
Exploiter l'action {{range}}
Pour réaliser la répétition dans les modèles, Go s'appuie sur l'action {{range}}. Cependant, cette action attend une structure de données itérable, telle qu'une tranche, un tableau ou une carte. Pour faciliter cela, vous pouvez transmettre une tranche vide au modèle, car les tranches vides consomment une surcharge de mémoire minimale.
Mise en œuvre de la solution
Considérez le modèle suivant qui génère la pagination liens :
<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{idx}}</a></li> {{end}} </ul>
Dans le code de test qui l'accompagne, nous initialisons une tranche d'une longueur spécifique et la transmettons au modèle :
func main() { tmpl := template.Must(template.New("").Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) } }
Cela donne le résultat suivant :
<ul> <li><a href="/?page=0">0</a></li> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=4">4</a></li> </ul>
Personnalisation des éléments numérotés
Si l'indexation par défaut (à partir de 0 ) ne convient pas, vous pouvez choisir de personnaliser le numéro affiché. Deux approches s'offrent à vous :
1. Remplissage des tranches : Attribuez des valeurs explicites aux éléments de tranche.
2. Utilisation de fonctions personnalisées : Définissez une fonction qui incrémente les nombres et appelez-la dans le modèle.
Ces deux méthodes vous permettent de contrôler la numérotation des éléments générés.
En tirant parti de la flexibilité des modèles Go et de ces techniques, vous pouvez rationaliser le processus de répétition des structures HTML dans vos applications Web Golang.
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!