Go テンプレートを使用した繰り返し HTML 構造の作成
Go Web アプリケーションでは、HTML 要素を繰り返し生成する必要がある場合があります。たとえば、リスト内にページネーション リンクを作成するには、コード行を複数回複製する必要がある場合があります。この記事では、Go テンプレートとその固有のループ機能を利用した効果的なソリューションを示します。
{{range}} アクションの活用
テンプレートでの繰り返しを実現するために、Go は以下に依存します。 {{range}} アクション。ただし、このアクションでは、スライス、配列、マップなどの反復可能なデータ構造が必要です。これを容易にするために、空のスライスをテンプレートに渡すことができます。空のスライスはメモリ オーバーヘッドを最小限に抑えるためです。
ソリューションの実装
ページネーションを生成する次のテンプレートを検討してください。 links:
<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{idx}}</a></li> {{end}} </ul>
付属のテスト コードでは、特定の長さのスライスを初期化して渡します。テンプレートに追加します:
func main() { 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>
番号付き要素のカスタマイズ
デフォルトのインデックス作成 (開始) 0 から) は適切ではない場合は、表示される番号をカスタマイズすることを選択できます。次の 2 つのアプローチが利用可能です:
1.スライスの充填: スライス要素に明示的な値を割り当てます。
2.カスタム関数の使用: 数値をインクリメントする関数を定義し、テンプレート内で呼び出します。
これらのどちらの方法でも、生成される要素の番号付けを制御できます。
柔軟性を活用することで、 Go テンプレートとこれらのテクニックを利用すると、Golang Web アプリケーション内で HTML 構造を繰り返すプロセスを合理化できます。
以上がGo テンプレートで繰り返し HTML 構造を効率的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。