亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在我的模板中訪問我的結構數組

在我的模板中訪問我的結構數組

Go
慕婉清6462132 2022-03-07 22:55:00
我將一個結構數組傳遞給我的模板,數據在那里,但我找不到訪問特定數據的方法,我已經嘗試了很多東西,這里是我的結構type Data struct {  Destination string  IData interface{}}然后在我的控制器中我有users := []models.User {}userRow := models.User{Name: "jon", Email: "[email protected]"}users = append(users, userRow)users2 := usersdata := models.Data{    Destination: "content",    IData: users,}data2 := models.Data{    Destination: "content",    IData: users2,}dataFinal := []models.Data{}dataFinal = append(dataFinal, data)dataFinal = append(dataFinal, data2)這是我的模板,雖然這似乎不起作用,但它確實顯示了原始數據,但似乎無法具體訪問名稱。{{define "content"}}<h2>THIS IS THE BODY CONTENT</h2><ul>    {{.}}    {{range .}}    <li>{{.}}</li>    {{end}}</ul>{{end}}編輯:項目:https ://github.com/og2/go-og2-mvc你可能想跑:去獲取 github.com/go-sql-driver/mysql去獲取 github.com/julienschmidt/httprouter讓它工作,應該沒問題!
查看完整描述

1 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

如果您傳遞給"content"模板執行的管道值為dataFinal,那么您必須使用兩個{{range}}操作,因為dataFinal它本身是一個切片(類型為[]models.Data),Data.IData也是一個切片(類型為[]model.User)。


在內部{{range}}你可以參考User.Name類似.Name:


<li>{{.Name}}</li>

請參閱此工作示例:


const templ = `{{define "content"}}

<h2>THIS IS THE BODY CONTENT</h2>


<ul>

    {{.}}

    {{range .}}

    <ul>

       {{range .IData}}

       <li>{{.Name}}</li>

       {{end}}

    </ul>

    {{end}}

</ul>

{{end}}`


// Parsing and executing the template:

t := template.Must(template.New("").Parse(templ))

fmt.Println(t.ExecuteTemplate(os.Stdout, "content", dataFinal))

輸出(在Go Playground上試試):


<h2>THIS IS THE BODY CONTENT</h2>


<ul>

    [{content [{jon [email protected]}]} {content [{jon [email protected]}]}]


    <ul>


       <li>jon</li>


    </ul>


    <ul>


       <li>jon</li>


    </ul>


</ul>

<nil>


查看完整回答
反對 回復 2022-03-07
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號