在模板文件中创建数组和循环的最佳方法是什么



我正在为我的Go项目使用Gin gonic,在我的footer.tmpl中,我将拥有超过10++的导航链接,而不是多次编写"链接",如果我创建一个包含链接的数组,并对其进行标题和循环会容易得多,对吧?

问题是正如我所研究的那样,Golang 没有内置函数来声明视图文件 (.tmpl/.html( 中的数组/映射变量。

为什么我需要数组在视图文件中是因为这个 footer.tmpl 将包含在几乎所有其他页面中,如果我必须在控制器内部编写数组并传递变量,将数组参数传递给所有页面将太麻烦了。

这是我的 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>

通过这样做,当我将此页脚包含在另一个页面中时,维护代码会更容易。

您可以在模板中使用范围

{{range .YourListItems}}
<div><a href="{{.Url}}">{{.Name}}</a></div>
{{end}}

相关内容

  • 没有找到相关文章

最新更新