檢索HTML/Template 的Go 包中Map 元素的Struct 字段
情況:
您有一個結構體和一個使用該結構體作為值的對應。您希望存取使用 html/template 套件呈現的 HTML 頁面中的結構體欄位。
解決方案:
要啟用對模板中結構體字段的訪問,它們必須被出口。導出欄位需要以大寫字母開頭。
詳細說明:
<code class="go">type Task struct { cmd string args []string Desc string // Exported field }</code>
注意描述中的大寫“D”
同樣,更新地圖和模板引用:
<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>
結果:
輸出將包含每個任務的Desc 字段:
<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>
注意:此解決方案導出整個結構,因此如果您只需要特定字段,請考慮使用定義的模板函數。
以上是如何使用 Go 的 html/template 套件存取 HTML 模板中地圖元素的結構欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!