ホームページ  >  記事  >  バックエンド開発  >  Go の text/template パッケージ内のテンプレート間でデータを渡すにはどうすればよいですか?

Go の text/template パッケージ内のテンプレート間でデータを渡すにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-27 02:59:03619ブラウズ

How to Pass Data Between Templates in Go's text/template Package?

テンプレート間でのデータの受け渡し

テンプレートのレンダリングにおける一般的な要件は、テンプレート間でデータを受け渡す機能です。 Go のテキスト/テン​​プレート パッケージでは、これは関数とテンプレート呼び出し手法の組み合わせを使用して実現できます。

ネストされたテンプレートに追加の引数として単純な数値を渡すには、その引数をマージする関数を定義できます。単一のスライス値に変換します。その後、この関数を登録し、テンプレート呼び出しで使用できます。

次に例を示します:

<code class="go">func args(vs ...interface{}) []interface{} {
    return vs
}</code>
<code class="go">t, err := template.New("t").Funcs(template.FuncMap{"args": args}).Parse(...)</code>

index.html テンプレートで、args 関数を使用して現在の追加の引数を持つデータ:

<code class="html">{{ template "image_row" args . 5 }}</code>

image_row.html テンプレート内で、index 組み込み関数を使用して引数にアクセスします:

<code class="html">{{ define "image_row" }}
   To stuff here {{ index . 0 }} {{ index . 1 }}
{{ end }}</code>

このアプローチにより、任意のデータを渡すことができますテンプレート間で相互に連携し、より複雑で再利用可能なテンプレート コンポーネントを構築します。

以上がGo の text/template パッケージ内のテンプレート間でデータを渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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