【发布时间】:2017-08-10 10:36:19
【问题描述】:
我正在编写一个简单的 Go 程序来显示每个环境已部署服务版本的 HTML 表格。我的程序包含以下结构:
type versionKey struct {
Environment string
Service string
}
type templateData struct {
Environments []string
Services []string
Versions map[versionKey]string
}
如您所见,Versions 映射使用versionKey 作为字符串值的键,例如"1.0.0".
我将 templateData 结构传递给 HTML 模板,并在其 Environments 和 Services 切片上构建 HTML 表。问题是我需要为环境和服务的任何给定交集构造一个versionKey,以便我可以使用它从Versions 映射中查找版本并将该值输出到表格单元格中。
在模板中,我有范围内可用的 $environment 和 $service 变量,但我无法使用 Go 模板语法来创建 versionKey 结构。
这是省略标记的模板代码:
{{$environments := .Environments}}
{{$services := .Services}}
{{$versions := .Versions}}
{{range $service := $services}}
...
{{range $environment := $environments}}
...
{{index $versions ...? }} // How to create versionKey struct map key here?
...
{{end}}
...
{{end}}
【问题讨论】:
标签: go go-templates