在没有看到您的代码的情况下,我能做的最好的就是提供一个显示您所需功能的示例。
如果我不得不猜测,我会说你传入的数据是一个字符串,而不是一个字符串指针。字符串不能具有 nil/null 值,只有字符串指针可以。虽然这会产生一个“”,而不是一个“null”,(如此处所示),所以我只能想象这是你在代码中所做的一些奇怪的事情。
为了防止链接腐烂,我复制了下面的代码示例,尽管值得点击链接查看它们的输出。
所需功能:
package main
import (
"log"
"os"
"html/template"
)
type TemplateData struct {
Email *string
}
func main() {
const temp = "<script>var email = {{.Email}};</script>\n"
t := template.Must(template.New("email_template").Parse(temp))
email := "somebody@somewhere.com"
err := t.Execute(os.Stdout, TemplateData{
Email: &email,
})
if err != nil {
log.Println("executing template:", err)
}
err = t.Execute(os.Stdout, TemplateData{
Email: nil,
})
if err != nil {
log.Println("executing template:", err)
}
}
尝试使用“null”字符串:
package main
import (
"log"
"os"
"html/template"
)
type TemplateData struct {
Email string
}
func main() {
const temp = "<script>var email = {{.Email}};</script>\n"
t := template.Must(template.New("email_template").Parse(temp))
email := "somebody@somewhere.com"
err := t.Execute(os.Stdout, TemplateData{
Email: email,
})
if err != nil {
log.Println("executing template:", err)
}
err = t.Execute(os.Stdout, TemplateData{
})
if err != nil {
log.Println("executing template:", err)
}
}