小编hap*_*oid的帖子

转到模板:嵌套范围可能吗?

这个看似简单,但它让我疯了.

如何在golang模板中的嵌套范围内引用范围更高的struct元素?

例:

type Foo struct {
  Id string
  Name string
}

type Bar struct {
  Id string
  Name string
}

var foos []Foo
var bars []Bar

// logic to populate both foos and bars
Run Code Online (Sandbox Code Playgroud)

在模板中:

{{range .foos}}
  <div>Foo {{.Name}}</div>
  <div>
    {{range ..bars}}
      <div>Bar {{.Name}} <input type="text" name="ids_{{..Id}}_{{.Id}}" /></div>
    {{end}}
  </div>
{{end}}
Run Code Online (Sandbox Code Playgroud)

显然..bars和..Id不起作用,但希望我的意图很明确.我想迭代Foo和Bar的所有组合,并生成一个表单元素,其名称由Foo的Id和Bar的Id构建.

问题是似乎不可能:

  1. 来自foos范围范围内的访问条
  2. 从条形范围内访问Foo的Id

我通过在两个结构中放置一堆冗余字段来对此进行临时解决,但这对我来说似乎非常难看,违反了DRY,并且总体上感觉非常错误.

golang模板有什么方法可以做我想做的事情吗?

templates go

20
推荐指数
1
解决办法
8686
查看次数

标签 统计

go ×1

templates ×1