диапазон в шаблоне golang диапазона

Как получить доступ к диапазону в пределах диапазона в шаблонах Go?

Шаблон:

{{range .Resume.Skills}}    
    {{.Name}}
    {{.Level}}
    {{range $item, $key := .Keywords}}
            {{$key}}
            {{$item}}
    {{end}}
{{end}}

Структура:

type SkillsInfo struct {
    Name     string
    Level    string
    Keywords []KeywordsInfo
}

type KeywordsInfo struct {
    Keyword string
}

результат, который я вижу, это {}. Как получить доступ к вложенным объектам в шаблонах?

---Обновлять--:

type ResumeJson struct {
    Basics       BasicsInfo
    Work         []WorkInfo
    Volunteer    []VolunteerInfo
    Education    []EducationInfo
    Awards       []AwardsInfo
    Publications []PublicationsInfo
    Skills       []SkillsInfo
    Languages    []LaunguagesInfo
    Interests    []InterestsInfo
    References   []ReferencesInfo
}

Результат виден сейчас:

Мастер веб-разработки {} 0 {} 1 {} 2

и JSON я разбираю:

 "skills": [{
    "name": "Web Development",
    "level": "Master",
    "keywords": [
         "CSS", 
         "HTML",
      "Javascript"
    ]
  }],

person Mangirdas    schedule 04.07.2016    source источник
comment
У меня такое чувство, что это может быть связано с json, который я прочитал (обновил). Но не знаю, почему он так себя ведет   -  person Mangirdas    schedule 04.07.2016
comment
Ошибки в шаблоне нет. Но теперь я начинаю думать, что это либо JSON, либо Revel framework и то, как они реализовали шаблоны.   -  person Mangirdas    schedule 04.07.2016


Ответы (1)


Ключевые слова представлены в виде массива строк в формате JSON. Измените типы Go, чтобы они соответствовали JSON:

type SkillsInfo struct {
  Name     string
  Level    string
  Keywords []string
}

и используйте этот шаблон:

{{range .Resume.Skills}}    
  {{.Name}}
  {{.Level}}
  {{range .Keywords}}
     {{.}}
  {{end}}
{{end}}

пример игровой площадки

person Cerise Limón    schedule 04.07.2016