由於下面的結構,我想訪問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}}'。它沒有工作。 –