Go Web アプリケーションでは、n の値に応じて、特定の HTML 行を何度も出力する必要があります。 .
これにアプローチする方法は次のとおりです:
HTML テンプレートでは、 {{range}} アクションを使用すると、項目を反復処理できます。ただし、このアクションにはスライス、配列、またはマップを使用する必要があります。
ゼロ値スライスの受け渡しこの要件を満たすには、次のようにします。 make([]struct{} など) メモリが割り当てられていない空のスライスを渡します。 n).
<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul></p> <p>テンプレート コード:<strong></strong></p> <pre class="brush:php;toolbar:false">tmpl := template.Must(template.New("").Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) }
のテストコード:
<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>
出力:
<ul> {{range .}} <li><a href="/?page={{.}}">{{.}}</a></li> {{end}} </ul>
テンプレート コード:
tmpl := template.Must(template.New("").Parse(templ)) n := 5 values := make([]int, n) for i := range values { values[i] = (i + 1) * 2 } if err := tmpl.Execute(os.Stdout, values); err != nil { panic(err) }
テスト例コード:
<ul> <li><a href="/?page=2">2</a></li> <li><a href="/?page=4">4</a></li> <li><a href="/?page=6">6</a></li> <li><a href="/?page=8">8</a></li> <li><a href="/?page=10">10</a></li> </ul>
出力:
<ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>
テンプレート コード:
func Add(i int) int { return i + 1 }
カスタム関数:
<ul> <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> <li><a href="/?page=5">5</a></li> </ul>出力:
以上がテンプレートを使用して Go Web アプリケーションで HTML コードを複数回繰り返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。