editor php templat Zimo In Go, kami selalunya perlu memproses foto dan menggunakan Int rawak boleh membantu kami mencapai beberapa kesan menarik. Random Int ialah fungsi yang menjana integer rawak Kami boleh menggunakannya untuk melakukan operasi rawak pada foto dalam templat, seperti memaparkan foto yang berbeza secara rawak, menambahkan kesan penapis pada foto secara rawak, dsb. Artikel ini akan memperincikan cara menggunakan templat Ints in Go secara rawak untuk memproses foto dan memberikan beberapa contoh aplikasi praktikal. Sama ada anda seorang pemula atau pembangun yang berpengalaman, anda boleh mempelajari beberapa petua praktikal tentang templat Go dan Ints rawak daripada artikel ini.
Saya mempunyai integer rawak mudah dalam kod saya yang saya hantar ke templat
min := 1 max := 1563 photo := rand.intn(max - min + 1) fmt.println(photo) 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: photo, })
Ideanya adalah untuk rawak foto dalam templat saya (saya ada 1563 dalam folder saya)
{{range.page}}
<div id="content"> <div class="card"> <p> <div class="card-img"> <a href="{{.slug}} "> <img src="{{.photo}}" alt="" /></a> </div> <div class="card-info"> <div class="card-info-title"> <a href="{{.slug}} " >{{.title}} </a> </div>
src="{{.photo}}" akan ranap templat seolah-olah pembolehubah tidak diluluskan dengan betul. Mungkin masalahnya ialah ini dalam satu gelung, jadi saya memerlukan nombor rawak setiap siaran untuk memaparkan foto?
Adakah terdapat cara lain untuk melakukannya secara terus dalam templat?
Dikemas kini
Terima kasih atas bimbingan yang saya dapat sekarang
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, })
Dalam templat
{{range $idx, $page := .pages}} <div id="content"> <div class="card"> <p> <div class="card-img"> <a href="{{.slug}} "> <img src="{{index $.photos $idx}}" alt="" /></a> </div> <div class="card-info"> <div class="card-info-title"> <a href="{{.slug}} " >{{.title}} </a> </div> <div class="card-info-category"> <p> tags: </p> <ul> <li> {{.tags}} </li> </ul> </div> <div class="card-info-date"> {{.date}} </div> </div> </p> </div> </div> {{end}}
Juga mencuba
<a href="{{.slug}} "> <img src="/public/suisse/suisse{{index $.photos $idx}}.jpg" alt="" /></a>
Tetapi malangnya, templat berhenti melaksanakan sebaik sahaja saya memanggilnya
{{index $.Photos $idx}}
Saya rasa ini adalah sejenis kesilapan menaip di pihak saya?
{{range}}
操作会更改点,因此 {{range .pages}}
内的 {{.photo}}
将解析为 .pages
elemen.
Gunakan $
untuk merujuk kepada nilai mentah "luar" yang diserahkan kepada pelaksanaan templat:
src="{{$.photo}}"
Walaupun ini hanyalah integer, anda mungkin mahu menggunakannya dalam laluan atau url seperti ini:
src="/path/to/images?id={{$.photo}}"
Nota: Jika anda ingin menggunakan imej yang berbeza untuk semua halaman, anda mesti menghantar nombor yang berbeza untuk setiap halaman, bukan hanya satu nombor. Kemudian tambahkan photo
字段,然后您可以在 {{range}}
中引用它,如原始代码中的 {{.photo}}
pada halaman.
Anda menulis bahawa anda tidak boleh mengubah suai page
,因为它来自您的数据库。如果是这样,则传递一段随机数并使用 index
aksesnya seperti berikut:
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, })
Dalam templat:
{{range $idx, $page := .pages}} <a href="{{.slug}} "><img src="{{index $.photos $idx}}" alt=""/> </a> {{end}}
Atau daftar fungsi random
yang boleh anda panggil dari templat:
// 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")
Anda boleh memanggilnya dari templat seperti ini:
{{range .Pages}} <a href="{{.Slug}} "><img src="{{random}}" alt=""/> </a> {{end}}
Atas ialah kandungan terperinci Menggunakan Int rawak untuk foto dalam templat Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!