Golang'ın html şablonları ile biraz uğraşırken, şablonlardaki nesnelerin üzerine döngü yapmak için bulduğum tüm örnekler, şablondaki yapılara geçiş yapıyordu. örnek: "ana" şablon varlık ileGit şablonları: dilim yapısının yerine yapıların dilimi boyunca aralık aralığı
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)
}
:
{{define "main"}}
{{range .Name}}
{{.}}
{{end}}
{{end}}
Bu çalışır, ancak ben hemen yanında karşılık gelen Adına i eğer her Id gösterilecek nasıl zannettim alamadım Sadece .Name özelliği üzerinde değişiyor. Her kullanıcıyı, görüntülerken özelliklerini gruplandırmak için bir nesne olarak ele almak daha mantıklı bulurdum.
Böylece benim sorum: Artık
i şablona yapılar bir dilim geçmek istiyorsa ne olacak? Bu çalışmayı yapmak için sözdizimi ne olurdu? Resmi html/template belgesinde nasıl bulunmadığını ya da anlayamadım. Böyle uzaktan bakarak bir şeyi tahmin: (sadece anlaşılmış almak var, kasten yanlış burada sözdizimi)
{{define "main"}}
{{for each User from myuserlist as myuser}}
{{myuser.Id}}
{{myuser.Name}}
{{end}}
{{end}}
Teşekkür:
type User struct {
Id int
Name string
}
type UserList []User
var myuserlist UserList = ...
ve bunun gibi biraz görünümlü bir şablon.
bunu okuyun bakın: http://jan.newmarch.name/go/template/chapter-template.html - özellikle sen menzil döngü içinden çağırabilirsiniz bir değişkene birini atayın. – elithrar
Konuyla ilgili tam olarak görünüyor gibi görünüyor, çok yakında hepsini okuyacağından emin olacağım. Teşekkürler. –
Gerçekten de, daha sonra içine gireceğimi tahmin ettiğim problemlerin cevabı bile vardı. Bu harika bağlantı için teşekkürler. –