Heim >Backend-Entwicklung >Golang >Wie greife ich mit dem html/template-Paket von Go auf Strukturfelder von Kartenelementen in HTML-Vorlagen zu?

Wie greife ich mit dem html/template-Paket von Go auf Strukturfelder von Kartenelementen in HTML-Vorlagen zu?

DDD
DDDOriginal
2024-10-24 07:34:30359Durchsuche

How to Access Struct Fields of Map Elements in HTML Templates Using Go's html/template Package?

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!

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