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

Golang tmpl HTML 文本被解释为纯文本而不是使用 HTML

Golang tmpl HTML 文本被解释为纯文本而不是使用 HTML

Go
阿波罗的战车 2023-03-21 15:32:23
我使用包含 html 标签的 Go 为我的模板提供了一些数据。当我尝试显示此数据时,它会按字面意思显示全文,包括 HTML 标记。这是代码:在我的中.tmpl,我正在遍历一个名为.SimRpms其{{ $value }}具有 html 的对象,例如<br>:{{ range $key, $value := .SimRpms }}    <div class="col-md-4">        <div class="panel panel-default">          <div class="panel-heading">{{ $key }}</div>          <div class="panel-body">{{ $value }}</div>        </div>    </div>{{ end }}但是,当我查看呈现的页面时,{{ $value }}呈现为纯文本而不是 html:我怎样才能{{ $value }}将文本解释为 HTML?这是它在 JS 控制台中的样子:我知道这类似于这个问题:Golang html output is being interpreted as plain text instead of being received as html然而页面的其余部分显示 HTML ok 并且已经设置了整个页面的内容类型,但是这个小面板不显示 HTML(它按字面意思显示)。
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

package main


import (

    "html/template"

    "log"

    "net/http"

)


func main() {

    http.HandleFunc("/", SayHello)

    log.Fatal(http.ListenAndServe(":2332", nil))

}

func SayHello(w http.ResponseWriter, r *http.Request) {

    t, err := template.ParseGlob("hello.gtml")

    if err != nil {

        panic(err)

    }

    t.Execute(w, map[string]template.HTML{"name": template.HTML("<a>Katie Sissons</a>")})

    return

}

使用模板


hello.gtml以下。


<html>

    <head></head>

    <body>{{ .name  }}</body>

</html>

html/template包将其视为template.HTML一种类型并将转义应用于普通字符串。如果你想让你的字符串不转义,这种类型可以为你做到这一点。


查看完整回答
反对 回复 2023-03-21
?
米脂

TA贡献1836条经验 获得超3个赞

为了使它起作用,我最终所做的是操纵我正在显示的数据。我没有使用map[string]stringfor ,而是使用了这样我可以遍历字符串切片并在它们之间插入一个:SimRpmsmap[string][]string<br>


{{ range $key, $value := .SimRpms }}

    <div class="col-md-4">

        <div class="panel panel-default">

          <div class="panel-heading">{{ $key }}</div>

          <div class="panel-body">

            {{ range $keytwo, $valuetwo := $value }}

                {{ $valuetwo }}<br>

            {{ end }}

          </div>

        </div>

    </div>

{{ end }}


查看完整回答
反对 回复 2023-03-21
  • 2 回答
  • 0 关注
  • 335 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号