Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Golang:.Scan()忽略类型template.HTML_Go - Fatal编程技术网

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

Golang:.Scan()忽略类型template.HTML,go,Go,所以现在.Scan()没有接受template.HTML类型;它完全忽略它,不向HTML输出任何内容。这是我一直坚持和不确定的一件事 如果我将其作为字符串传递,它将工作,但HTML将作为转义字符输出 <h2>metus congue 如果有一个替代的解决方案,这将是整洁的 代码为一页-此处为整页: 结构 type Pages struct { Name string Url string Title

所以现在.Scan()没有接受template.HTML类型;它完全忽略它,不向HTML输出任何内容。这是我一直坚持和不确定的一件事

如果我将其作为字符串传递,它将工作,但HTML将作为转义字符输出

<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}}