首頁 > 後端開發 > Golang > 如何使用 Go 的 html/template 套件存取 HTML 模板中地圖元素的結構欄位?

如何使用 Go 的 html/template 套件存取 HTML 模板中地圖元素的結構欄位?

DDD
發布: 2024-10-24 07:34:30
原創
358 人瀏覽過

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

檢索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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板