由于下面的结构,我想访问field2
,同时迭代在HTML中的field1
数据。我该怎么做呢?去html模板访问范围内的结构体字段
var MyPageData struct {
field1 []Foo
field2 map[string]Bar
}
我想:内部处理函数:
err := myPageTemplate.Execute(w,MyPageData{ field1: field1Slice, field2 : myMapData})
模板:
{{ range $index, $fooInstance := .field1}}
<tr>
<td>{{$fooInstance.Name}}</td> //This prints the Name value
<td>{{ index .$field2 "myKey".Name }}</td>
如何访问上述field2
,并指定一个键值来检索Bar
实例?
UPDATE添加Foo和Bar结构
type Foo2 struct {
Name string
Id int
}
type Foo struct {
Name string
element Foo2
}
type Bar struct {
Name string
}
感谢您的回复。我用样本结构更新了这个问题。 'myKey'是'$ foo.Name'。我试过{{$ .Field2.foo.Name}}但它没有奏效。 –
@sumanj然后你需要使用'{{index}}'动作,例如:'{{index $ .Field2 .Name}}'。见编辑的答案。 – icza
太棒了。但是如果'{{index $ .Field2 .Name}}'是Foo2类型的。我需要打印Foo2元素的Id。我试过'{{index $ .Field2 .Name .Id}}'。它没有工作。 –