Go Template 如何将数据传递给模板?

go template 如何将数据传递给模板?

go template 如何赋值变量

go 中的模板赋值方式与 php 不同。在 php 中,使用 assign() 方法将 php 变量赋值给模板。在 go 中,使用 execute() 函数的第二个参数将数据传到模板。

使用方法:

  1. 定义模板:使用 template.parsefiles() 读取并解析一个 html 文件。
  2. 准备数据:创建包含要传给模板的数据的映射或结构。
  3. 执行模板:调用 execute() 函数,并传递数据作为第二个参数。

示例:

type FileName struct {
    Name string
}

func main() {
    fileList := []FileName{{"a.txt"}, {"b.txt"}}
    t, err := template.ParseFiles("html/show_dir_list.html")
    if err != nil {
        panic(err)
    }
    err = t.Execute(w, map[string]interface{}{"fileList": fileList})
    if err != nil {
        panic(err)
    }
}

在这个示例中:

  • filelist 是要传给模板的切片。
  • execute() 的第二个参数是一个映射,其中包含 filelist 变量。

注意:

  • 模板中的.表示传递给模板的数据。
  • 可以直接传递 filelist 切片,但模板中的.就需要少一个层级 ({{range $i, $v := .}} 变成 {{range $i, $v := .name}})。

以上就是Go Template 如何将数据传递给模板?的详细内容,更多请关注www.sxiaw.com其它相关文章!