我正在尝试显示健身课程清单(瑜伽,普拉提等)。对于每个班级类型,都有几个班级,因此我想将所有瑜伽班和所有普拉提班归为一组,依此类推。
我做了这个功能来切片并绘制它的地图
func groupClasses(classes []entities.Class) map[string][]entities.Class { classMap := make(map[string][]entities.Class) for _, class := range classes { classMap[class.ClassType.Name] = append(classMap[class.ClassType.Name], class) } return classMap }
现在的问题是,根据http://golang.org/pkg/text/template/,我该如何遍历它,您需要以.Key格式访问它,我不知道键(除非我也传递了一个切片模板中的键数)。如何在我的视图中解包此地图。
.Key
我目前所拥有的是
{{ . }}
显示如下:
map[Pilates:[{102 PILATES ~/mobifit/video/ocen.mpg 169 40 2014-05-03 23:12:12 +0000 UTC 2014-05-03 23:12:12 +0000 UTC 1899-12-30 00:00:00 +0000 UTC {PILATES Pilates 1 2014-01-22 21:46:16 +0000 UTC} {1 leebrooks0@gmail.com password SUPERADMIN Lee Brooks {Male true} {1990-07-11 00:00:00 +0000 UTC true} {1.85 true} {88 true} 2014-01-22 21:46:16 +0000 UTC {0001-01-01 00:00:00 +0000 UTC false} {0001-01-01 00:00:00 +0000 UTC false} {0001-01-01 00:00:00 +0000 UTC false}} [{1 Mat 2014-01-22 21:46:16 +0000 UTC}]} {70 PILATES ~/mobifit/video/ocen.mpg 119 66 2014-03-31 15:12:12 +0000 UTC 2014-03-31 15:12:12 +0000 UTC 1899-12-30 00:00:00 +0000 UTC
检查Go模板文档中的Variables部分。范围可以声明两个变量,以逗号分隔。以下应该工作:
{{ range $key, $value := . }} <li><strong>{{ $key }}</strong>: {{ $value }}</li> {{ end }}