Go 占位符不会被替换
我正在试用这个包Go 占位符不会被替换,go,go-templates,Go,Go Templates,我正在试用这个包http/template 我也已经管理过,例如,基本模板中包含页眉、页脚、导航栏等: {{define“base”} {{模板“头”} {{模板“导航栏”} {{模板“内容”} {{模板“页脚”} {{end} 404页: {{定义“内容”} [...] 404 {{.CurrentURL} [...] {{end} 因此,这里的变量CurrentURL应替换为当前URL。 但是,在网站上,这仅显示为空(“): 但是现在我想替换一个变量,它在网页上只显示为“” Go代码
http/template
我也已经管理过,例如,基本模板中包含页眉、页脚、导航栏等:
{{define“base”}
{{模板“头”}
{{模板“导航栏”}
{{模板“内容”}
{{模板“页脚”}
{{end}
404页:
{{定义“内容”}
[...]
404
{{.CurrentURL}
[...]
{{end}
因此,这里的变量CurrentURL
应替换为当前URL。
但是,在网站上,这仅显示为空(“
):
但是现在我想替换一个变量,它在网页上只显示为“”
Go代码:
解析器:
func(parser*TemplateParser)ParseTemplate(名称字符串)(tpl*template.template,err error){
root,err:=template.New(“root”).Parse(rootTmpl)
// ...
返回root.ParseFiles(文件…)
}
路线:
func(ws*WebServer)Exec(名称字符串,r*http.Request,w http.ResponseWriter,数据映射[string]接口{})(错误){
// ...
//添加默认数据
数据[“CurrentURL”]=r.URL.RequestURI()
// ...
返回tpl.Execute(w,数据)
}
即使使用数组,我也不能使用range
等:
类型测试结构{
当前URL字符串
C[]字符串
}
t:=试验{
CurrentURL:“当前URL”,
C:[]字符串{“C1”、“c2”、“ccc4”},
}
第三方物流执行(w,t)
{{range.C}}
- {{}}
{{end}
我做错了什么?您没有向子模板传递任何数据:
您必须将上下文传递给实例化的模板。使用
{{ template "content" .}}
将
中的数据传递到内容
模板。哦,这么小的一个点,我在搜索自己。谢谢你的回答!
{{ template "content" .}}