変な質問ですみません。自分の問題を 1 つのステートメントで正確に述べる方法がわかりませんでした。
Web ページ、ヘッダー、レイアウト、フッターに 3 つのテンプレートがあります。
テンプレート ヘッダーには、カテゴリ ドロップダウン メニューがあり、go コードにはサブメニュー項目を含む文字列のスライスがあります。
Categories := []string{"Holiday","IQ","Future"}
テンプレートヘッダーには次のhtmlコードがあります
<div class="ui dropdown item">
<i class="browser icon"></i>
Categories
<i class="dropdown icon"></i>
<div class="menu">
{{range $i,$e:= .}}
<a class="item"><i class="hashtag icon"></i>{{$e}}</a>
{{end}}
</div>
</div>
だから私がするとき、
t,err :=template.ParseFiles("template/header.html","template/index.html","template/footer.html")
t.ExecuteTemplate(w,"header",Categories)
それは私に見栄えの良いヘッダーを与えますが、私はする必要があります
t.ExecuteTemplate(w,"layout",Featured)
メインページ用。レイアウト テンプレートの構造は次のとおりです。
some html code
{{template "header"}}
more html code
{{template "footer"}}
両方の execute template ステートメントを一緒に使用すると、明らかに 2 つの異なるヘッダーが得られます。
テンプレート レイアウトからテンプレート ヘッダーを削除すると、視覚的な出力は完璧ですが、html コードを見ると、メニュー バーは "link rel" ステートメントの上にあります (覚えておいてください、{{template " の上に "いくつかの html コード" がありました)。 header"}} ) であり、これは明らかに良くありません。
両方のテンプレートがそれぞれの構造体を使用して同時に実行されるようにするにはどうすればよいですか?