テンプレート間でのデータの受け渡し
Go のテンプレート システムでは、特に 1 つのテンプレートをテンプレート内に含める場合、複数のテンプレート間でデータを渡す必要がある場合があります。別の。 「含まれているテンプレートにデータを引数として渡し、そのテンプレート内でアクセスするにはどうすればよいですか?」という疑問が生じます。
これを実現するには、引数を 1 つのスライス値にマージするカスタム関数を利用できます。この関数を登録することで、テンプレート呼び出し内で使用できるようになります。次のコードは、これがどのように行われるかを示しています。
<code class="go">package main import ( "fmt" "html/template" ) func main() { t, err := template.New("t").Funcs(template.FuncMap{ "args": func(vs ...interface{}) []interface{} { return vs }, }).Parse("{{ template \"image_row\" args . 5 }}") if err != nil { fmt.Println(err) return } err = t.Execute(template.Must(template.ParseFiles("index.html", "image_row.html")), nil) if err != nil { fmt.Println(err) return } } // index.html {{ template "image_row" . | 5 }} // image_row.html {{ define "image_row" }} To stuff here {{index . 0}} {{index . 1}} {{ end }}</code>
image_row テンプレート内では、組み込みのインデックス関数を使用して引数にアクセスできます。たとえば、{{index . 0}} は、index.html テンプレートから渡された最初の引数 (インデックス 0)、この場合は数値 5 にアクセスします。
このソリューションは、複数のテンプレート間でデータを受け渡し、アクセスするための多用途な方法を提供し、カスタムを可能にします。機能性と効率的なコードの再利用。
以上がGo のテンプレート システムに含まれるテンプレートにデータを引数として渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。