私は Go プロジェクトに Gin gonic を使用しています。私の footer.tmpl には、「リンク」を複数回記述するのではなく、10++ 以上のナビゲーション リンクがあります。リンクを含む配列を作成すると、はるかに簡単になります。 、そしてタイトルとそれをループしますよね?
問題は、私が調査したように、Golang には、ビュー ファイル (.tmpl/.html) 内で配列/マップ変数を宣言する組み込み関数がないことです。
ビューファイル内に配列が必要な理由は、この footer.tmpl が他のほとんどすべてのページに含まれているためです。コントローラー内に配列を記述して変数を渡す必要がある場合は、渡すのが面倒です。すべてのページに params を配列します。
これは私のGolangコードです:
r.GET("/", func(c *gin.Context) {
tmpl := template.Must(template.ParseFiles("templates/layout.tmpl", "templates/index.tmpl", "templates/common/header_a.tmpl", "templates/common/footer_a.tmpl"))
r.SetHTMLTemplate(tmpl)
var hometabList = []HomeTab{
HomeTab{Title: "Tab1", Value: 1},
HomeTab{Title: "Tab2", Value: 2},
HomeTab{Title: "Tab3", Value: 3},
}
c.HTML(200, "layout", gin.H {
"tab": hometabList,
"product": "123",
})
})
私は Go に移行する PHP 開発者です。PHP では、ビュー内でこれを行うことができます。
view.php
<body>
<?php
$arr_link = ['link1', 'link2', 'link3'];
for($i = 0; $i < count($arr_link); $i++): ?>
<div><a><?= $arr_link[$i]; ?></a></div>
<?php endfor; ?>
</body>
こうすることで、このフッターを別のページに入れるときに、コードのメンテナンスが容易になります。