使用数据解析多个模板

时间:2018-04-01 23:35:08

标签: templates go

如何将数据传递到正确的模板?

我有以下模板,想要解析它们

的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)

那我该如何正确执行呢?

1 个答案:

答案 0 :(得分:0)

来自docs

  

{{template&#34; name&#34;管道}}具有指定名称的模板是   使用dot设置为管道的值来执行。

这意味着要将数据从layout.html模板传递到list.html模板,您需要将数据作为template操作的第二个参数传递。

E.g。 {{template "main" .}}