2016-07-19 11 views
0
Templates.ExecuteTemplate(w, "index.html", map[string]interface{} { 
     "Games": games}) 
} 

Wo Spiele ist []map[string]interface{} (kartiert Ergebnis der SQL-Abfrage)Cast-Schnittstelle {} eingeben Vorlage

In Vorlage:

{{ range $gval := .Games }} 
    {{ how to make something like: $gval.name.(string) }} 
{{end}} 

Wie werfen Schnittstelle {} Wert von Karte zu bespannen (oder int) in Vorlage? In ‚go‘ ich kann games[0]["name"].(string)

tun, wenn ich $gval.name tun es Hexstring

Antwort

1

Ich glaube nicht, es ist möglich zu tun Art Behauptungen aus einer Vorlage schreibt. Sie müssen Ihre eigene Funktion schreiben und sie aus der Vorlage aufrufen. Zum Beispiel:

func ToString(value interface{}) string { 
    switch v := value.(type) { 
    case string: 
     return v 
    case int: 
     return strconv.Itoa(v) 
    // Add whatever other types you need 
    default: 
     return "" 
} 

Um die Funktion von Vorlage zu rufen, müssen Sie die funcs nennen() -Methode auf die Vorlage:

tpl.Funcs(template.FuncMap{"tostring": ToString}) 

Jetzt können Sie {{$gval.name | tostring}} in Ihrer Vorlage tun