1 回答

TA貢獻1871條經(jīng)驗 獲得超8個贊
該{{range}}操作更改了點,因此{{.Photo}}在 的內(nèi)部{{range .Pages}}將根據(jù) 的元素進行解析.Pages。
用于$引用傳遞給模板執(zhí)行的“外部”原始值:
src="{{$.Photo}}"
雖然這只是一個整數(shù),但您可能希望在路徑或 URL 中使用它,如下所示:
src="/path/to/images?id={{$.Photo}}"
注意:如果你想為所有頁面使用不同的圖像,你必須為每個頁面?zhèn)鬟f不同的數(shù)字,而不僅僅是一個。然后在頁面中添加一個Photo字段,然后你就可以在你原來的代碼中的{{range}}as里面引用它了{{.Photo}}。
你寫了你不能修改,Page因為它來自你的數(shù)據(jù)庫。如果是這樣,那么要么傳遞一段隨機數(shù)并index像這樣訪問它們:
min := 1
max := 1563
Photos := make([]int, len(pages))
for i := range Photos {
Photos[i] = rand.Intn(max - min + 1)
}
tmpl.ExecuteTemplate(w, "index.html", struct {
Pages []Page
CurrentPage int
TotalPage int
NextPage int
PreviousPage int
LastPage int
ShowNext bool
ShowPrevious bool
Photo []int
}{
Pages: pages,
CurrentPage: pageIndex + 1,
TotalPage: totalPaginationPage,
NextPage: pageIndex + 1,
PreviousPage: pageIndex - 1,
LastPage: totalPaginationPage - 1,
ShowNext: pageIndex+1 < totalPaginationPage,
ShowPrevious: pageIndex-1 >= 0,
Photo: Photos,
})
在模板中:
{{range $idx, $page := .Pages}}
<a href="{{.Slug}} "><img
src="{{index $.Photos $idx}}"
alt=""/>
</a>
{{end}}
或者注冊一個random可以從模板調(diào)用的函數(shù):
// Parse the template as you did, but first register a random function:
min, max := 1, 1563
tmpl, err := template.New("").Funcs(template.FuncMap{
"random": func() int { return rand.Intn(max - min + 1) },
}).ParseFiles("template-name.html")
您可以像這樣從模板中調(diào)用它:
{{range .Pages}}
<a href="{{.Slug}} "><img
src="{{random}}"
alt=""/>
</a>
{{end}}
- 1 回答
- 0 關(guān)注
- 115 瀏覽
添加回答
舉報