在Golang模板中,可以使用另一个变量作为键吗?

huangapple go评论82阅读模式
英文:

Can I use another variable as a key in Golang templates?

问题

我有一个类似于以下结构的数据结构:

map[string]SomeStructure

我还有一个结构体,封装了上述结构以及其他变量和结构体,这是发送到模板的内容:

type page struct {
    Status   map[string]SomeStructure
    Database  []string
}

在我的模板文件中,我希望能够做类似以下的操作:

{{ range index .Database}} 
    {{ .Status "KEY".MemberVariableOfSomeStructure }}
{{ end }}

除了我希望"KEY"根据迭代的.Database值动态变化。

英文:

I have a data structure that is sometihng like:

map[string]SomeStructure

I have another struct that encapsulates the above plus additional variables and other structs and that's what gets sent to the template:

type page struct {
    Status   map[string]SomeStructure
    Database  []string
}

In my template file I want to be able to do something like

{{ range index .Database}} 
    {{ .Status "KEY".MemberVariableOfSomeStructure }}
{{ end }}

Except I want the "KEY" to be dynamic based on the iterating .Database value.

答案1

得分: 3

你可以使用index函数来访问一个映射。

{{ range .Database }} 
    {{ index $.Status . }}
{{ end }}

参见play

英文:

You can use the index function to access a map.

{{ range .Database }} 
    {{ index $.Status . }}
{{ end }}

See play.

huangapple
  • 本文由 发表于 2017年6月3日 00:24:26
  • 转载请务必保留本文链接:https://go.coder-hub.com/44333467.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定