Döngü özel işlev olarak kullanmaya çalışıyorum. Kıvrımlı parantezler arasında yineleme ve içeriklerin sayısını alır, daha sonra içerikler köşeli ayraçlar arasında yinelenmelidir. , Bakınız örnek:Golang. Html/template package kullanarak döngü işlevi nasıl oluşturulur
main.go
template.Must(template.ParseFiles("palette.html")).Funcs(template.FuncMap{
"loop": func(n int, content string) string {
var r string
for i := 0; i <= n; i++ {
r += content
}
return r
},
}).ExecuteTemplate(rw, index, nil)
index.html
{{define "index"}}
<div class="row -flex palette">
{{loop 16}}
<div class="col-2"></div>
{{end}}
</div>
{{end}}
Çıktı
<div class="row -flex palette">
<div class="col-2"></div>
<div class="col-2"></div>
<div class="col-2"></div>
<div class="col-2"></div>
... 16 times
</div>
Uygulanması mümkün mü? Motivasyon, text/template
'un standart işlevselliğinin sadece küme parantezi arasındaki içeriğin yinelenmesine izin vermemesidir. Evet, "dış" verilerden geçen range
eylemi ile yapabiliriz.
İyi fikir! Böylece, küme parantezlerinden içerik almanın bir yolu yok mu?) –
Farkında olduğumdan değil. – Innominate
Dilim elemanlarını kullanmıyorsanız, boş bir yapı kullanmak daha verimlidir. http://play.golang.org/p/_jRV62bOB3 Bu şekilde, n öğeleri yerine yalnızca bir dilim başlığı (sabit boyut) ayırırsınız. – Logiraptor