Strukturfeld des Kartenelements im Go-Paket von HTML/Template abrufen
Situation:
Sie haben eine Struktur und eine Karte, die die Struktur als Wert verwenden. Sie möchten auf die Felder der Struktur innerhalb einer HTML-Seite zugreifen, die mit dem Paket html/template gerendert wurde.
Lösung:
Um den Zugriff auf die Felder der Struktur innerhalb der Vorlage zu ermöglichen, sie müssen exportiert werden. Beim Exportieren eines Feldes muss der Name mit einem Großbuchstaben beginnen.
Detaillierte Erklärung:
<code class="go">type Task struct { cmd string args []string Desc string // Exported field }</code>
Beachten Sie den Großbuchstaben „D“ in der Beschreibung.
Aktualisieren Sie auf ähnliche Weise die Karten- und Vorlagenreferenzen:
<code class="go">var taskMap = map[string]Task{ "find": Task{ cmd: "find", args: []string{"/tmp/"}, Desc: "find files in /tmp dir", }, "grep": Task{ cmd: "grep", args:[]string{"foo","/tmp/*", "-R"}, Desc: "grep files match having foo", }, }</code>
<code class="html">{{range $key, $value := .}} <li>Task Name: {{$key}}</li> <li>Task Value: {{$value}}</li> <li>Task description: {{$value.Desc}}</li> {{end}}</code>
Ergebnisse:
Die Ausgabe enthält das Desc-Feld für jede Aufgabe:
<code class="html"><html> <li>Task Name: find</li> <li>Task Value: {find [/tmp/] find files in /tmp dir}</li> <li>Task description: find files in /tmp dir</li> <li>Task Name: grep</li> <li>Task Value: {grep [foo /tmp/* -R] grep files match having foo}</li> <li>Task description: grep files match having foo</li> </html></code>
Hinweis: Diese Lösung exportiert die gesamte Struktur. Erwägen Sie daher die Verwendung einer definierten Vorlagenfunktion, wenn Sie nur bestimmte Felder benötigen.
Das obige ist der detaillierte Inhalt vonWie greife ich mit dem html/template-Paket von Go auf Strukturfelder von Kartenelementen in HTML-Vorlagen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!