如何在没有任何变量的Go中渲染模板?

时间:2013-06-08 22:15:54

标签: go

我已使用以下代码将模板文件加载到内存中:

t := template.New("master")
tpl, err := t.ParseFiles("templates/index.html")

现在我想将该模板绘制成一个字符串,所以我的index.html非常空:

{{define "master"}}
Hello World
{{end}}

我刚刚开始,所以我还没有任何数据。有没有办法可以将Template对象转换为没有数据的字符串?

2 个答案:

答案 0 :(得分:3)

如果您的模板(尚未)使用任何变量,您只需将任何值作为数据传递即可呈现模板。因此,要将模板呈现为stdout,您可以使用:

tpl.Execute(os.Stdout, nil)

如果您真的想将模板呈现为字符串,可以使用bytes.Buffer作为中介:

var buf bytes.Buffer
tpl.Execute(&buf, nil)
str := buf.String()

答案 1 :(得分:-1)

这在Go中是不可能的,按设计 - 如果您没有数据,则模板包是不必要的开销。

如果您没有数据,只需使用io包阅读该文件,而不是使用模板。