2015-10-23 93 views
-2

因此,現在.Scan()沒有考慮類型template.HTML;它完全忽略它並不向HTML輸出任何內容。這是我陷入困境並且不確定的一件事。Golang:.Scan()忽略類型模板.HTML

如果我通過它,因爲它工作的字符串,但HTML輸出,轉義字符

<h2>metus congue 

如果有一個替代的解決方案,這將是整齊的。

的代碼是一個pager-整版這裏:http://pastebin.com/E4jXiv6p

該結構

type Pages struct { 
    Name  string 
    Url   string 
    Title  string 
    Description string 
    H1   string 
    Hero  string 
    Contents template.HTML 
    Sidebar  string 
    Page_list [][]string 
} 

查詢頁面

func db_query_pages(db *sql.DB, err error, page_list [][]string) { 

    var name, url, title, description, h1, hero, sidebar string 

    var contents template.HTML 

    rows, err := db.Query("SELECT * FROM pages") 

    for rows.Next() { 

     rows.Scan(&name, &url, &title, &description, &h1, &hero, &contents, &sidebar) 

     page := &Pages{ 

      Name:  name, 
      Url:   url, 
      Title:  title, 
      Description: description, 
      H1:   h1, 
      Hero:  hero, 
      Contents: contents, 
      Sidebar:  sidebar, 
      Page_list: page_list, 
     } 

     render_page(page) 

    } 

} 

渲染頁面

func render_page(new_page *Pages) { 

    http.HandleFunc(new_page.Url, 
     func(w http.ResponseWriter, r *http.Request) { 

      templates.ExecuteTemplate(w, "main", new_page) 

     }) 

} 

^h TML

{{define "content"}} 

    <h1>{{.H1}}</h1> 

    <img class="margin-bottom-md block common-border padding-md" src="{{.Hero}}"> 

    {{.Contents}} 

{{end}} 

回答

1

你不能元帥或Unamrshal的html.Template

您可能需要存儲對模板名稱,原始模板數據或DB中呈現的html的引用。

+0

這回答我的問題,謝謝。 – Gretch

+0

我的解決辦法是: \t \t頁:=&頁{ \t \t \t內容:template.HTML(內容), \t \t} – Gretch