Golang不能执行ExecuteTemplate

时间:2014-07-15 10:24:27

标签: templates go

我需要ExecuteTemplate(text和html)。我有下一个片段:

import ("text/template")
...

test_path := "/cnaize/home/test.txt"
testTmpl := template.New(test_path)
var test bytes.Buffer
if err := testTmpl.ExecuteTemplate(&test, test_path, mm.Args); err != nil {
    return err
}

但我在invalid memory address or nil pointer dereference中有错误ExecuteTemplate。当我将第一行更改为import ("html/template")时,出现"/cnaize/home/test.txt" is an incomplete template错误。 我的test.txt

Test

哪里可能有问题?

编辑: 我知道文档,但我在https://github.com/arkxu/gomail/blob/master/message.go找到了这个解决方案,这正是我需要的,因为我不知道如何在args中设置template.ParseFiles()。文件夹名称为template.New()即可。我的mm.Argsmap[message:Hello there!],我已经检查过了。

1 个答案:

答案 0 :(得分:3)

这里有两件事是错的:

  1. template.New()使用给定名称初始化一个空模板,你给出了一个路径,这是好的,但它可能不是你想要的。在使用库之前请先阅读documentation。 您可能正在寻找:template.ParseFiles()

  2. 什么是mm.Args?仅从该片段和错误我猜mm是零。