Innerhalb einer Go-Vorlage besteht das Ziel darin, Folgendes zu emulieren:
{{$var := template "my-template"}}
Allerdings Dieser Ansatz führt zu dem Fehler „unerwartetes in“. operand."
Go bietet keine integrierte Methode zum Erfassen der Ergebnisse der Vorlagenausführung. Registrieren Sie stattdessen eine Funktion, die diese Aufgabe ausführt.
Verwenden Sie die Funktion Template.Funcs(), um Funktionen zu registrieren. Führen Sie benannte Vorlagen mit Template.ExecuteTemplate() aus und verwenden Sie einen bytes.Buffer als Ziel, um das Ergebnis der direkten Vorlagenausführung in einem Puffer zu erfassen.
package main import ( "bytes" "html/template" "log" "os" ) var t *template.Template func execTempl(name string) (string, error) { buf := &bytes.Buffer{} err := t.ExecuteTemplate(buf, name, nil) return buf.String(), err } func main() { t = template.Must(template.New("").Funcs(template.FuncMap{ "execTempl": execTempl, }).Parse(tmpl)) if err := t.Execute(os.Stdout, nil); err != nil { log.Fatal(err) } } const tmpl = `{{define "my-template"}}my-template content{{end}} See result: {{$var := execTempl "my-template"}} {{$var}} `
Führen Sie die Vorlage „my-template“ mit der registrierten Funktion execTempl() aus. Speichern Sie das Ergebnis in der Vorlagenvariablen $var, die dann zur Ausgabe hinzugefügt oder an andere Funktionen übergeben werden kann.
See result: my-template content
Beachten Sie, dass die Ausgabe das Ergebnis der „ my-template“-Vorlage und zeigt sie innerhalb der Hauptvorlage an.
Das obige ist der detaillierte Inhalt vonWie erfasst man die Go-Vorlagenausgabe und weist sie einer Variablen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!