ホームページ >バックエンド開発 >Golang >テンプレートを使用して Go Web アプリケーションで HTML コードを複数回繰り返すにはどうすればよいですか?

テンプレートを使用して Go Web アプリケーションで HTML コードを複数回繰り返すにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-22 11:05:11715ブラウズ

How can I repeat HTML code multiple times in a Go web application using templates?

Go で HTML コードを複数回繰り返す

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。