2016-07-04 73 views
0

如何訪問Go模板範圍內的範圍?範圍內golang模板

模板:

{{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 
} 

結果,我可以看到的是{}。如何訪問模板中的嵌套對象?

--- Update--:

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

結果現在看到:

Web開發大師{0} {0} {1} 2

ANS JSON我解析:

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

我有一種感覺,可能是由於JSON我讀(更新)。但不知道爲什麼它的行爲如此 – Mangirdas

+0

模板沒有錯誤。但是現在我開始考慮它的JSON或Revel框架以及它們如何實現模板 – Mangirdas

回答

1

關鍵字在JSON中表示爲一個字符串數組。更改go類型相匹配的JSON:

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

,並使用這個模板:

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

playground example