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

Mary-Kate Olsen
リリース: 2024-10-26 08:32:30
オリジナル
399 人が閲覧しました

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

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

Go のテキスト/テン​​プレート パッケージでは、テンプレートをネストして共通の HTML 要素を再利用できます。ただし、追加のデータを嵌套に渡す必要がある場合は、ネストされたテンプレートでは、デフォルトのテンプレート メカニズムはこれを直接サポートしていません。

これを実現するには、引数をスライスに結合してそれを返すカスタム関数を作成できます。この関数をテンプレートに登録し、それを使用して引数を渡します。

例は次のとおりです:

package main

import (
    "text/template"
)

func main() {
    // Define the custom function to combine arguments
    func args(vs ...interface{}) []interface{} { return vs }

    // Parse the template with the custom function registered
    t, err := template.New("t").Funcs(template.FuncMap{"args": args}).Parse(...)
    if err != nil {
        // Handle error
    }

    // Render the template with the custom function
    t.ExecuteTemplate(..., template.Args(..., 5))

    // Access the arguments in the nested template
    {{ define "image_row" }}

       To stuff here {{index . 0}} {{index . 1}}

    {{ end }}
}
ログイン後にコピー

このアプローチを使用すると、追加のデータをネストされたテンプレートに動的に渡すことができ、より柔軟で再利用可能な HTML コード。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!