0

是否可以在 golang 中呈现多个具有相同名称的 html 模板。原因是,我想制作一个布局并将其重用于多个视图。例如:

{{define "MainLayout"}}
<html>

  <head>
    <title>{{.Title}}</title>
  </head>

  <body>

    <div>{{template "Content" .}}</div>

  </body>

</html>
{{end}}

内容可以是不同的模板,它们都由 {{define "Content"}} 定义

4

2 回答 2

0

我相信 elithrar 有你正在寻找的东西,但不幸的是它目前不受支持。处理此问题的典型方法是在自己的模板中定义页眉和页脚,并与您的方法相反。您可以将提供给模板解析器的结构传递到这些模板中以呈现您的页面。

{{define "header"}}
<html>...
{{end}}

{{define "footer"}}
...</html>
{{end}}

{{define "Content"}}
{{template "header" .}}
HTML
{{template "footer" .}}
{{end}}
于 2016-01-28T03:14:08.097 回答
0

你是如何解析你的模板的?在同一个模板树中不能有两个同名的模板。但是,您可以创建一个自定义解析函数,该函数只会将一个名为“Content”的模板添加到您的模板树中。

示例: https: //play.golang.org/p/35X3i_jPzS

于 2016-10-11T00:43:16.147 回答