2017-08-05 4 views
0

Je travaille à Golang, et maintenant j'ai besoin d'imprimer au moins 20 options dans un select, donc je dois utiliser une sorte de boucle qui va de 0 à 20 (pour obtenir Un index). Comment puis-je utiliser une boucle for à l'intérieur d'un template golang?Implémenter une boucle for à l'intérieur d'un template golang

J'ai besoin de générer la séquence de nombres à l'intérieur du modèle. Je n'ai aucun tableau à parcourir.

EDIT: je dois obtenir quelque chose comme ceci:

<select> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

Alors, je dois faire dans le code quelque chose comme:

<select> 
    {{for i := 1; i < 5; i++}} 
     <option value="{{i}}">{{i}}</option> 
    {{end}} 
</select> 

Mais, ce travail ne marche pas

+0

Est-ce que vous essayez d'ouvrir un manuel? –

+0

Vous devriez écrire un peu plus sur ce que vous voulez réaliser (inclure des exemples) et ce que vous avez déjà essayé – jayme

+0

@jayme mis à jour! –

Répondre

0

Vous pouvez également utiliser range dans les modèles. Voir https://golang.org/pkg/text/template/#hdr-Variables

l'option pourrait être de plus simple il suffit d'utiliser une tranche contenant vos options:

func main() { 
    const tmpl = ` 
<select> 
{{range $val := .}} 
    <option value="{{$val}}">{{$val}}</option> 
{{end}} 
</select> 
` 
    t := template.Must(template.New("tmpl").Parse(tmpl)) 

    t.Execute(os.Stdout, []int{1, 2, 3}) 
} 
+0

oui, je l'ai déjà vu. Mais comme je l'ai compris, la plage est seulement pour itérer sur les tableaux déjà créés, je n'ai aucun tableau. J'ai besoin de générer la séquence à l'exécution –