如何将数据传递到正确的模板?
我有以下模板,想要解析它们
的layout.html:
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
<header>
...
</header>
<main>
{{template "main"}}
</main>
</body>
</html>
list.html:
{{define "main"}}
{{range $index, $element := . }}
<div>
<a href=#>{{ $element.Data1 }}</a>
<p>{{ $element.Data2 }}</p>
<p>{{ $element.Data3 }}</p>
</div>
{{end}}
{{end}}
当我在处理程序func中使用它时,只有&#34; main&#34;模板被执行,我没有得到布局。
t, err := template.ParseFiles(layoutPath, templatePath)
t.ExecuteTemplate(w, "main", Data)
有了这个,我没有列表模板中的数据,因此无法显示列表。
t, err := template.ParseFiles(layoutPath, templatePath)
t.ExecuteTemplate(w, Data)
那我该如何正确执行呢?
答案 0 :(得分:0)
来自docs:
{{template&#34; name&#34;管道}}具有指定名称的模板是 使用dot设置为管道的值来执行。
这意味着要将数据从layout.html
模板传递到list.html
模板,您需要将数据作为template
操作的第二个参数传递。
E.g。 {{template "main" .}}