ホームページ > バックエンド開発 > Golang > Go テンプレートで親テンプレートから子テンプレートにデータを渡すにはどうすればよいですか?

Go テンプレートで親テンプレートから子テンプレートにデータを渡すにはどうすればよいですか?

DDD
リリース: 2024-10-26 03:08:27
オリジナル
240 人が閲覧しました

How can you pass data from a parent template to a child template in Go templates?

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

クエリは、あるテンプレートから別のテンプレートへのデータの受け渡しに関するものです。子テンプレート (image_row.html) を含む親テンプレート (index.html) がありますが、追加のデータを子に渡したいと考えています。

テンプレートのデフォルトの動作では、親テンプレート内で定義されたデータのみが許可されます。子供に引き継がれること。ただし、いくつかのテクニックを使用することで目的を達成できます。

複数の引数に関数を使用する

1 つのアプローチは、引数を 1 つに集約する関数を定義することです。スライス値。次に、この関数を登録し、テンプレートで呼び出すことができます。

例:

import "text/template"

func args(vs ...interface{}) []interface{} { return vs }

t, err := template.New("t").Funcs(template.FuncMap{"args": args}).Parse(...)
ログイン後にコピー

index.html 内:

{{ template "image_row" args . 5 }}
ログイン後にコピー

image_row.html 内:

{{ define "image_row" }}
   Data: {{ index . 0 }} {{ index . 1 }}
{{ end }}
ログイン後にコピー

これにより、インデックス関数を使用して子テンプレートの引数にアクセスできるようになります。

{{ index . 0 }} -> .
{{ index . 1 }} -> 5
ログイン後にコピー

その他のアプローチ

または、次のことを検討してください:

  • カスタム テンプレート関数の使用: 子に必要なデータを生成するカスタム関数を親テンプレート内で定義します。
  • 構造体またはマップの受け渡し: データを集約して子テンプレートに渡す構造体またはマップを構築します。

この方法でデータ受け渡しメカニズムをカスタマイズすると、柔軟性と制御が可能になります。テンプレート間でデータがどのように共有されるか。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート