为了账号安全,请及时绑定邮箱和手机立即绑定

Golang:.Scan() 忽略类型 template.HTML

Golang:.Scan() 忽略类型 template.HTML

Go
开心每一天1111 2021-11-15 20:55:07
所以现在 .Scan() 没有接受类型 template.HTML; 它完全忽略它并且不向 HTML 输出任何内容。这是我坚持和不确定的一件事。如果我将它作为字符串传递它可以工作,但 HTML 输出为转义字符&lt;h2&gt;metus congue如果有一个替代解决方案,那将是整洁的。代码是一个单页机 - 整页: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)        })}HTML{{define "content"}}    <h1>{{.H1}}</h1>    <img class="margin-bottom-md block common-border padding-md" src="{{.Hero}}">    {{.Contents}}{{end}}
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

你不能 Marshal 或 Unamrshal an html.Template.

您需要在数据库中存储对模板名称、原始模板数据或呈现的 html 的引用。


查看完整回答
反对 回复 2021-11-15
  • 1 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信