助けてください。 は、私は、構造体テンプレート内の構造体の配列
type myType struct {
ID string
Name
Test
}
とタイプを持っていると私は、すべての構造体のフィールドを持つテンプレートで私のリストを印刷することができますどのようにタイプ
var List []MyType;
の配列を持っていますか?
ありがとうございました!
助けてください。 は、私は、構造体テンプレート内の構造体の配列
type myType struct {
ID string
Name
Test
}
とタイプを持っていると私は、すべての構造体のフィールドを持つテンプレートで私のリストを印刷することができますどのようにタイプ
var List []MyType;
の配列を持っていますか?
ありがとうございました!
range
と変数の割り当てを使用します。 text/template
documentationの該当するセクションを参照してください。また、以下の例を参照してください。あなたはHTMLテンプレートの話をしている場合は
package main
import (
"fmt"
"os"
"text/template"
)
type myType struct {
ID string
Name string
Test string
}
func main() {
list := []myType{{"id1", "name1", "test1"}, {"i2", "n2", "t2"}}
tmpl := `
<table>{{range $y, $x := . }}
<tr>
<td>{{ $x.ID }}</td>
<td>{{ $x.Name }}</td>
<td>{{ $x.Test }}</td>
</tr>{{end}}
</table>
`
t := template.Must(template.New("tmpl").Parse(tmpl))
err := t.Execute(os.Stdout, list)
if err != nil {
fmt.Println("executing template:", err)
}
}
ありがとう、Amir –
出力がHTMLの場合はいつでも['html/template'](https://golang.org/pkg/html/template/)を使用してください。コードの注入に対して安全です。 – icza
を、ここでは次のようになりたいものです。
{{range $idx, $item := .List}}
<div>
{{$item.ID}}
{{$item.Name}}
{{$item.Test}}
</div>
{{end}}
そして、これはあなたがいることを合格したい方法ですスライスをテンプレートに貼り付けます。
import (
htpl "html/template"
"io/ioutil"
)
content, err := ioutil.ReadFile("full/path/to/template.html")
if err != nil {
log.Fatal("Could not read file")
return
}
tmpl, err := htpl.New("Error-Template").Parse(string(content))
if err != nil {
log.Fatal("Could not parse template")
}
var html bytes.Buffer
List := []MyType // Is the variable holding the actual slice with all the data
tmpl.Execute(&html, type struct {
List []MyType
}{
List
})
fmt.Println(html)
「テンプレートで印刷する」とはどういう意味ですか?
{end for}}