将 HTML 插入 GoLang 模板
在 GoLang 中填充 HTML 模板时,遇到 HTML 字符被转义和错误添加的问题并不罕见。为了解决这个问题,了解作为字符串传递数据和作为 template.HTML 传递数据之间的区别至关重要。
默认情况下,当数据作为字符串传递时,GoLang 模板将转义 HTML 字符。这会导致您所描述的意外输出。为了防止这种情况,正确的方法是将 HTML 内容作为 template.HTML 传递。此数据类型专门设计用于处理 HTML 内容而无需转义。
以下是如何使用 template.HTML 的示例:
<code class="go">package main import ( "html/template" "os" ) func main() { tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`)) tplVars := map[string]interface{} { "Html": template.HTML("<p>Paragraph</p>"), "String": "<p>Paragraph</p>", } tpl.ExecuteTemplate(os.Stdout, "T", tplVars) }</code>
通过将 HTML 内容作为 template.HTML 传递,输出将按预期呈现,并正确显示 HTML 字符。这种方法可确保您的 HTML 模板准确填充,而不会出现任何不需要的转义。
以上是如何防止 GoLang 模板中的 HTML 转义?的详细内容。更多信息请关注PHP中文网其他相关文章!