Golang。将数据发送到模板不起作用

时间:2014-08-08 14:03:20

标签: go

我想知道将任何数据发送到模板(html /模板包)的真实方法是什么?我的代码如下:

var templates = template.Must(template.ParseFiles(
    path.Join(this.currentDirectory, "views/base.html"),
    path.Join(this.currentDirectory, "views/main/test.html"),
))

templates.Execute(response, map[string]string{
    "Variable": "Тест!",
})

那是模板:

{{define "content"}}
{{ .Variable }}
{{end}}

我会感激的!

1 个答案:

答案 0 :(得分:5)

您的模板名称为"content",因此您需要专门执行该模板。

templates.ExecuteTemplate(os.Stdout, "content", map[string]string{
    "Variable": "Тест!",
})

您可能无法解析您的想法。来自template.ParseFiles文档(强调我的)

  

返回的模板名称将包含第一个文件的(基本)名称和(已解析)内容

尝试使用:

t, err := template.New("base").ParseFiles("base.html", "test.html")
if err != nil { ... }
t.Execute(response, variables)

here's a playground example如果有帮助的话。