Sie möchten mithilfe von auf die Felder einer in einer Karte gespeicherten Struktur zugreifen html/template-Paket in Go.
Die Standard-Go-Vorlagen erlauben keinen Zugriff auf nicht exportierte Felder einer Struktur. Um dies zu ermöglichen, müssen Sie die Felder exportieren, indem Sie den ersten Buchstaben ihrer Namen großschreiben.
Struktur mit exportierten Feldern definieren:
<code class="go">type Task struct { cmd string args []string Desc string // Note the capital "D" }</code>
Karte mit exportierten Strukturen initialisieren:
<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>
Vorlage analysieren und ausführen:
<code class="go">func listHandle(w http.ResponseWriter, r *http.Request) { t, _ := template.ParseFiles("index.tmpl") t.Execute(w, taskMap) }</code>
Vorlagendatei:
<code class="go"><html> {{range $key, $value := .}} <li>Task Name: {{$key}}</li> <li>Task Value: {{$value}}</li> <li>Task description: {{$value.Desc}}</li> {{end}} </html></code>
Die Vorlage kann nun auf die exportierten Felder der Aufgabenstruktur in der Karte zugreifen:
<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>
Das obige ist der detaillierte Inhalt vonWie greife ich in Go auf Strukturfelder in HTML-Vorlagen zu, wenn Felder nicht exportiert sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!