テンプレート内のマップを反復処理する 質問する

テンプレート内のマップを反復処理する 質問する

ジムのクラス (ヨガ、ピラティスなど) のリストを表示しようとしています。クラスの種類ごとに複数のクラスがあるため、すべてのヨガ クラスとすべてのピラティス クラスなどをグループ化したいと考えています。

スライスを取得してマップを作成する関数を作成しました

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が、キーはわかりません (テンプレートにキーのスライスも渡さない限り)。このマップをビューで展開するにはどうすればよいですか。

私が現在持っているのは

{{ . }} 

次のような内容が表示されます:

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 [email protected] 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 

ベストアンサー1

チェックしてください変数セクションGo テンプレートのドキュメントで、範囲はカンマで区切られた 2 つの変数を宣言できます。次のコードが機能するはずです。

{{ range $key, $value := . }}
   <li><strong>{{ $key }}</strong>: {{ $value }}</li>
{{ end }}

おすすめ記事