2016-06-17 6 views
-4

Ich versuche, eine HTML-Vorlage zu erstellen, die eine Tabelle enthält. Jede Zeile in der Tabelle sollte eine Struktur darstellen, die ich habe und Werte von dieser Struktur einschließen.Golang HTML-Repeater

Die einzige relevante Referenz I ist dies gefunden: golang template - how to render templates?

Der Unterschied ist, dass ich weiß nicht, die Anzahl der Zeilen in der Tabelle im Voraus, also muss ich durch eine dyanmic Liste Schleife in der Lage sein von Strukturen, die ich habe, und für jede solche Struktur füllen Sie ihre Werte in eine Vorlage, die eine Zeile darstellt, und fügen Sie diese Zeile der übergeordneten Vorlage hinzu, die die Tabelle darstellt.

Kann mir jemand zeigen, wie das geht? Jeder andere Ansatz ist ebenfalls willkommen.

Antwort

3

Ich denke, Sie suchen nur nach {{range}}, richtig? Z.B.

package main 

import "log" 
import "os" 
import "html/template" 

type Highscore struct { 
    Name string 
    Score int 
} 

func main() { 
    const tpl = `<ol> 
{{range .}} 
    <li>{{.Name}} - {{.Score}}</li> 
{{end}} 
</ol> 
` 
    scores := []Highscore{ 
     Highscore{"Steve", 50}, 
     Highscore{"Jim", 40}, 
    } 

    scoreTemplate, err := template.New("scores").Parse(tpl) 
    if err != nil { 
     log.Fatal(err) 
    } 

    err = scoreTemplate.Execute(os.Stdout, scores) 
    if err != nil { 
     log.Fatal(err) 
    } 
}