將多個資料傳遞給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中文網其他相關文章!