2 回答

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用 Go 模板沒有一種干凈的方法來執(zhí)行此操作,但是這是一種解決方法。更簡(jiǎn)單的解決方法是在將結(jié)構(gòu)傳遞給模板生成器之前將最后一項(xiàng)添加到結(jié)構(gòu)中。您正在做的是將復(fù)雜的邏輯移出模板(模板不是為執(zhí)行此操作而設(shè)計(jì)的)并移動(dòng)到Go代碼中。
type Post struct {
....
Comments []Comment
LastComment Comment
}
然后在您的模板中,只需執(zhí)行
{{ .LastComment }}

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
您可以使用模板中的自定義函數(shù)來獲取最后一個(gè)元素:
fmap := template.FuncMap{
"lastElem": func(comments []Comment) Comment {
return comments[len(comments)-1]
},
}
tmpl, err := template.New("tmpl").Funcs(fmap).Parse(tpl)
然后在模板中將其用作:
{{range .Posts}}
<p>Replies: {{ lastElem .Comments }}</p>
{{ end }}
- 2 回答
- 0 關(guān)注
- 1012 瀏覽
添加回答
舉報(bào)