Auf übergeordnete/globale Pipeline in der Bereichsaktion von Go-Vorlagen zugreifen
Im Text-/Vorlagenpaket von Go ist die Möglichkeit, auf Pipelines vor a zuzugreifen Bereichsaktion oder die übergeordnete/globale Pipeline ist unerlässlich. Betrachten Sie das folgende Beispiel:
const page = `{{range .Files}}<script src="{{html .Path}}/js/{{html .}}"></script>{{end}}` type scriptFiles struct { Path string Files []string } func main() { t := template.New("page") t = template.Must(t.Parse(page)) t.Execute(os.Stdout, &scriptFiles{"/var/www", []string{"go.js", "lang.js"}}) }
In diesem Beispiel ist der Zugriff auf .Path innerhalb der Bereichsaktion nicht möglich, da .dot in das aktuelle Dateielement umgewandelt wird.
Empfohlen Lösung – Verwendung der $-Variable
Laut der Dokumentation des Text-/Vorlagenpakets enthält die $-Variable das übergebene Datenargument Execute, das ist der Anfangswert von .dot. Um also mithilfe von $.Path in der Bereichsaktion auf den Pfad des äußeren Bereichs zuzugreifen, verwenden Sie die folgende Variante:
const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
Alternative Lösung – Benutzerdefinierte Variable
Vorher Für die Bereichsaktion kann eine benutzerdefinierte Variable definiert werden, um einen Wert an den Bereichsbereich zu übergeben. Zum Beispiel:
const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
Das obige ist der detaillierte Inhalt vonWie greife ich in der Bereichsaktion von Go-Vorlagen auf die übergeordnete/globale Pipeline zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!