Po zagraniu z szablonami html golanga, wszystkie przykłady, które znalazłem dla pętli nad obiektami w szablonach, przekazywały struktury plasterków do szablonu, trochę jak w tym Przykład:Gotowe szablony: zakres nad wycinkiem struktur zamiast struktury plasterków
type UserList struct {
Id []int
Name []string
}
var templates = template.Must(template.ParseFiles("main.html"))
func rootHandler(w http.ResponseWriter, r *http.Request) {
users := UserList{
Id: []int{0, 1, 2, 3, 4, 5, 6, 7},
Name: []string{"user0", "user1", "user2", "user3", "user4"},
}
templates.ExecuteTemplate(w, "main", &users)
}
z „głównej” szablon samopoczucia:
{{define "main"}}
{{range .Name}}
{{.}}
{{end}}
{{end}}
To działa, ale ja nie rozumiem jak mam do wyświetlania każdego identyfikatora tuż obok odpowiadającej jej imię, gdy "M zakres tylko od właściwości .Name. Byłbym bardziej logiczny traktować każdego użytkownika jako obiekt do grupowania jego właściwości podczas wyświetlania.
Stąd moje pytanie:
A co gdybym chciał przejść kawałek elemencie do szablonu? Jaka byłaby składnia, aby to działało? Nie znalazłem lub nie rozumiałem, jak to zrobić w oficjalnym dokumencie html/template. wyobrażałem sobie czegoś szuka zdalnie tak:
type User struct {
Id int
Name string
}
type UserList []User
var myuserlist UserList = ...
i szablon patrząc nieco jak poniżej: (składnia jest tu celowo źle, to tylko po to żeby rozumieć)
{{define "main"}}
{{for each User from myuserlist as myuser}}
{{myuser.Id}}
{{myuser.Name}}
{{end}}
{{end}}
Dzięki.
Przeczytaj to: http://jan.newmarch.name/go/template/chapter-template.html - konkretnie przypisać jeden do zmiennej, które można nazwać od wewnątrz pętli zasięgu. – elithrar
To wydaje się być kompletne na ten temat, na pewno przeczytam to wszystko już wkrótce. Dzięki. –
Rzeczywiście, miał nawet odpowiedź na problemy, o których domyślałem się później. Dzięki za ten świetny link. –