これは一見シンプルですが、それは私を狂ってしまいます。Goテンプレート:ネストされた範囲は可能ですか?
golangテンプレートのネストされた範囲内のスコープ内の構造体要素をより高いレベルで参照するにはどうすればよいですか?
例:テンプレートで
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
:
{{range .foos}}
<div>Foo {{.Name}}</div>
<div>
{{range ..bars}}
<div>Bar {{.Name}} <input type="text" name="ids_{{..Id}}_{{.Id}}" /></div>
{{end}}
</div>
{{end}}
は明らか..barsと..Idは動作しませんが、うまくいけば、私の意図は明らかです。私はFooとBarのすべての組み合わせを繰り返し、FooのIdとBarのIdの両方によってビルドされた名前のフォーム要素を生成したいと思います。
問題は、それが不可能であるようだということです。FOOSの範囲内から
- アクセスバーバーの範囲の範囲内からのスコープに
- アクセスはFooのIDの範囲
私は両方の構造体に冗長フィールドの束を入れてこれに一時的な回避策がありますが、これは私には非常に醜いと思われ、DRYに違反し、一般的に非常に間違って感じます。
私がしたいことを行うためにgolangテンプレートを使用する方法はありますか?
ありがとう、このアプローチは素晴らしい作品です。 – haploid