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

テンプレートをどのように解析していますか? 同じテンプレート ツリーに同じ名前の 2 つのテンプレートを含めることはできません。ただし、"Content" という名前のテンプレートを 1 つだけテンプレート ツリーに追加するカスタム解析関数を作成できます。

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

于 2016-10-11T00:43:16.147 に答える
0

elithrar にはあなたが探しているものがあると思いますが、残念ながら現在サポートされていません。この問題を処理する一般的な方法は、独自のテンプレートでヘッダーとフッターを定義し、アプローチの逆を行うことです。また、テンプレート パーサーに渡された構造体をこれらのテンプレートに渡して、ページをレンダリングすることができます。

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

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

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