Golang テンプレートでの HTML の反復
Golang では、テンプレート内の要素のリストを反復するときに、{{range }} アクション。ただし、反復処理には配列またはスライスが必要です。 HTML 行を複数回繰り返すには、空のスライスを作成し、ゼロ値または特定の値を設定します。
ゼロ値スライスの使用
必要な反復回数を表す空のスライス make([]struct{}, n) を作成できます。次に、テンプレート内で、{{range}}${} 構文を使用してスライスを反復処理します。例:
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))
塗りつぶされたスライスの使用
または、スライスを特定の値で塗りつぶすこともできます。このアプローチにより、HTML コード内のインデックス ($idx) の使用をスキップできます。例:
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)
ゼロ値スライスとカスタム関数の使用
もう 1 つのオプションは、スライス インデックスに 1 を加算し、値を返すカスタム関数を作成することです。結果。これにより、数値を 1 ずつ増やしながらスライス インデックスを使用できるようになります。例:
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))
これらのアプローチにより、特定の要件に基づいて HTML 行を複数回繰り返す柔軟な方法が提供されます。
以上がGolang テンプレートを使用して HTML 行を複数回繰り返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。