Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Daten als Argumente an eine im Vorlagensystem von Go enthaltene Vorlage übergeben?

Wie kann ich Daten als Argumente an eine im Vorlagensystem von Go enthaltene Vorlage übergeben?

DDD
DDDOriginal
2024-10-28 04:29:30609Durchsuche

How can I pass data as arguments to an included template in Go's templating system?

Übergabe von Daten zwischen Vorlagen

Im Vorlagensystem von Go kann es erforderlich sein, Daten zwischen mehreren Vorlagen zu übergeben, insbesondere wenn eine Vorlage darin enthalten ist ein anderer. Es stellt sich die Frage: „Wie kann ich Daten als Argumente an eine enthaltene Vorlage übergeben und innerhalb dieser Vorlage darauf zugreifen?“

Um dies zu erreichen, können Sie eine benutzerdefinierte Funktion verwenden, die die Argumente in einem einzigen Slice-Wert zusammenführt. Durch die Registrierung dieser Funktion kann sie innerhalb des Vorlagenaufrufs verwendet werden. Der folgende Code demonstriert, wie das geht:

<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>

Innerhalb der image_row-Vorlage kann über die integrierte Indexfunktion auf die Argumente zugegriffen werden. Beispiel: {{index . 0}} würde auf das erste Argument (Index 0) zugreifen, das von der Vorlage index.html übergeben wurde, in diesem Fall die Zahl 5.

Diese Lösung bietet eine vielseitige Möglichkeit, Daten zwischen mehreren Vorlagen zu übergeben und darauf zuzugreifen und ermöglicht so benutzerdefinierte Funktionalität und effiziente Code-Wiederverwendung.

Das obige ist der detaillierte Inhalt vonWie kann ich Daten als Argumente an eine im Vorlagensystem von Go enthaltene Vorlage übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn