在golang html模板中訪問{{range}}范圍之外的struct變量
您可以將其作為一個(gè)結(jié)構(gòu)傳遞,如下所示:
layoutData := struct { ThreadID int Posts []Post} { ThreadID: threadID, Posts: Posts,}
然后像這樣的東西會工作
<!DOCTYPE html><html><head> <title> Test </title></head><body> <div><h2>Reply</h2><form action='/post/{{ .ThreadID }}' method='POST'><input type='text' name='subject' /><input type='text' name='name' value='Anonymous' /><input type='text' name='message' /><input type='submit' value='submit' /></form> </div> <div>{{range $post := .Posts}}<h3>{{ $post.Subject}}</h3><h3>{{$post.Name}}</h3><div>{{$post.DatePosted}}</div><div><p>{{$post.Text}}</p></div><br /><br />{{end}} </div></body>解決方法
<!DOCTYPE html><html><head> <title> Test </title></head><body> <div><h2>Reply</h2><form action='/post/{{$threadID}}' method='POST'><input type='text' name='subject' /><input type='text' name='name' value='Anonymous' /><input type='text' name='message' /><input type='submit' value='submit' /></form> </div> <div>{{range .}}{{$threadID := .ThreadID}}<h3>{{.Subject}}</h3><h3>{{.Name}}</h3><div>{{.DatePosted}}</div><div><p>{{.Text}}</p></div><br /><br />{{end}} </div></body>
我有這個(gè)模板,頁面頂部有一個(gè)表格,要求發(fā)送的任何一篇帖子中的threadID(它們都是相同的,都是帶有特定threadID的所有帖子的一部分),這顯然不是工作,我唯一的想法是
{{range .}} {{if $threadID == nil}}$threadID := .ThreadID//build the form same as above {{end}} <h3>{{.Subject}}</h3> <h3>{{.Name}}</h3> <div>{{.DatePosted}}</div> <div><p>{{.Text}}</p></div> <br /><br />{{end}}
如果以上任何一個(gè)不清楚,這里是Post的結(jié)構(gòu)和方法。
type Post struct {threadID intsubject stringname stringtext stringdate_posted string}func (p *Post) ThreadID() int { return p.threadID }func (p *Post) Subject() string { return p.subject }func (p *Post) Name() string { return p.name}func (p *Post) Text() string { return p.text}func (p *Post) DatePosted() string { return p.date_posted }
并將切片的起源發(fā)送到模板
threadID := r.URL.Path[len('/reply/'):]replies,err := i.db.Query('SELECT * FROM latest_threads where thread_id='+threadID);
相關(guān)文章:
1. mysql - sql 左連接結(jié)果union右連接結(jié)果,導(dǎo)致重復(fù)性計(jì)算怎么解決?2. mysql 遠(yuǎn)程連接出錯(cuò)10060,我已經(jīng)設(shè)置了任意主機(jī)了。。。3. 默認(rèn)輸出類型為json,如何輸出html4. 數(shù)組排序,并把排序后的值存入到新數(shù)組中5. mysql的主從復(fù)制、讀寫分離,關(guān)于從的問題6. 怎么能做出標(biāo)簽切換頁的效果,(文字內(nèi)容隨動)7. php多任務(wù)倒計(jì)時(shí)求助8. mysql怎么表示兩個(gè)字段的差9. PHP訂單派單系統(tǒng)10. MySQL的聯(lián)合查詢[union]有什么實(shí)際的用處
