1

私は 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>

こうすることで、このフッターを別のページに入れるときに、コードのメンテナンスが容易になります。

4

1 に答える 1