Golang:.Scan()忽略类型template.HTML
所以现在.Scan()没有接受template.HTML类型;它完全忽略它,不向HTML输出任何内容。这是我一直坚持和不确定的一件事 如果我将其作为字符串传递,它将工作,但HTML将作为转义字符输出Golang:.Scan()忽略类型template.HTML,go,Go,所以现在.Scan()没有接受template.HTML类型;它完全忽略它,不向HTML输出任何内容。这是我一直坚持和不确定的一件事 如果我将其作为字符串传递,它将工作,但HTML将作为转义字符输出 <h2>metus congue 如果有一个替代的解决方案,这将是整洁的 代码为一页-此处为整页: 结构 type Pages struct { Name string Url string Title
<h2>metus congue
如果有一个替代的解决方案,这将是整洁的
代码为一页-此处为整页:
结构
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
{{定义“内容”}
{{.H1}}
{{.Contents}
{{end}
您无法封送或取消封送html.Template
您需要在DB中存储对模板名称、原始模板数据或呈现html的引用 我的解决方案是:page:=&Pages{Contents:template.HTML(Contents),}
{{define "content"}}
<h1>{{.H1}}</h1>
<img class="margin-bottom-md block common-border padding-md" src="{{.Hero}}">
{{.Contents}}
{{end}}