Golang Template Loop
func main() {
router := http.ServeMux{}
router.HandleFunc("/", (func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html")
html := `
<!DOCTYPE html>
<html>
<head>
<title>Golang Template</title>
</head>
<body>
{{ with $name := "Testing" }}
<h1>
{{ if or (eq "Testing" $name) (ne "Testing" $name) }} {{ "Hello Wordl" }}
{{ else }} {{ $name }}
{{ end }}
</h1>
{{ end }}
<ul>
<h4> Style loop 1 </h4>
{{ range .Data }}
<li> {{ .name }} </li>
{{ end }}
</ul>
<ul>
<h4> Style loop 2 </h4>
{{ range $index, $data:= .Data }}
<li> {{ $index }} {{ $data.name }} </li>
{{ end }}
</ul>
</body>
</html>
`
// html2 = `
// <ul>
// <h4>Style Loop Call 1</h4>
// {{ range .Data }}
// <li> {{ . }} </li>
// {{ end }}
// </ul>
// <ul>
// <h4>Style Loop Call 2</h4>
// {{ range $data := .Data }}
// <li> {{ $data }} </li>
// {{ end }}
// </ul>
// `
// arrData := []string{"senin", "selasa", "rabu", "kamis", "jumat", "sabtu", "minggu"}
arrObjectData := []map[string]string{
map[string]string{"name": "john doe"},
map[string]string{"name": "jane doe"},
}
data := &ApiResponse{Code: http.StatusOK, Message: "Looping Array", Data: arrObjectData}
temp := template.Must(template.New("index").Parse(html))
temp.ExecuteTemplate(w, "index", data)
}))
err := http.ListenAndServe(":3000", &router)
if err != nil {
log.Fatal(err)
}
}
Restu Wahyu Saputra