首頁 > 後端開發 > Golang > 如何將多個資料物件傳遞給 Go 範本?

如何將多個資料物件傳遞給 Go 範本?

Susan Sarandon
發布: 2024-12-19 21:22:10
原創
666 人瀏覽過

How Can I Pass Multiple Data Objects to Go Templates?

將多個資料傳遞給Go 範本

Go 中的範本執行允許傳遞單一值,但該值可以是複合型別包含多個組件。這提供了用於傳遞和存取模板中各種資料物件的多個選項。

使用結構的複合值:

建立封裝所需資料的自訂結構資料類型:

type Data struct {
    Results []User
    Other   []int
}
登入後複製

指派資料並執行template :

data := &Data{results, []int{1, 2, 3}}
if err := GetTemplate("list").Execute(w, data); err != nil {
    // Handle error
}
登入後複製

在模板中,以{{.Results}} 形式訪問MongoDB 結果,以 {{.Other}} 形式存取整數數組。

使用複合值地圖:

或者,建立一個包含data:

m := map[string]interface{}{
    "Results": results,
    "Other":   []int{1, 2, 3},
}
登入後複製

將地圖傳遞到模板並使用點表示法存取資料:{{.Results}} 表示結果,{{.Other}} 表示整數陣列。

使用切片的複合值:

一種可讀性較差的方法是使用包含data:

s := []interface{}{
    results,
    []int{1, 2, 3},
}
登入後複製

索引模板資料以存取元件:{{index . 0}} 取得結果和{{index . 1}} 用於整數陣列。

附加說明:

請記住,必須匯出資料類型才能在範本中存取。

考慮使用結構體或映射來提高可讀性和可維護性。

有其他方法,但不太實用具體場景。

以上是如何將多個資料物件傳遞給 Go 範本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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