2013-07-15 11 views
5

http/templateパッケージを使用してテンプレートを作成しました。テンプレートのキーと値の両方を反復処理するにはどうすればよいですか?Goのhtmlテンプレートのキーと値を繰り返し処理する方法

コード例: - キーの1、のための1つのあなたが試みることができる

template := ` 
<html> 
    <body> 
    <h1>Test Match</h1> 
     <ul> 
     {{range .}} 
      <li> {{.}} </li> 
     {{end}} 
    </ul> 
</body> 
</html>` 

dataMap["SOMETHING"] = 124 
dataMap["Something else"] = 125 
t, _ := template.Parse(template) 
t.Execute(w,dataMap) 

私はテンプレートに{{range}}でキーにアクセスするにはどうすればよい

答えて

7

ことの一つは、2つの変数を割り当てることrangeを使用しています値。 this変更(およびdocs)では、キーは可能な限りソート順に返されます。ここにあなたのデータを使用した例です。

package main 

import (
     "html/template" 
     "os" 
) 

func main() { 
     // Here we basically 'unpack' the map into a key and a value 
     tem := ` 
<html> 
    <body> 
    <h1>Test Match</h1> 
     <ul> 
     {{range $k, $v := . }} 
      <li> {{$k}} : {{$v}} </li> 
     {{end}} 
    </ul> 
</body> 
</html>` 

     // Create the map and add some data 
     dataMap := make(map[string]int) 
     dataMap["something"] = 124 
     dataMap["Something else"] = 125 

     // Create the new template, parse and add the map 
     t := template.New("My Template") 
     t, _ = t.Parse(tem) 
     t.Execute(os.Stdout, dataMap) 
} 

は、それを処理するより良い方法は、可能性がありますが、これは私の(非常に単純な)で働いている例を使用:)

関連する問題