我已使用以下代码将模板文件加载到内存中:
t := template.New("master")
tpl, err := t.ParseFiles("templates/index.html")
现在我想将该模板绘制成一个字符串,所以我的index.html
非常空:
{{define "master"}}
Hello World
{{end}}
我刚刚开始,所以我还没有任何数据。有没有办法可以将Template
对象转换为没有数据的字符串?
答案 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
包阅读该文件,而不是使用模板。