go - 使用 golang 模板在 div 中填充许多 Html 元素?

标签 go go-templates

我从前端收到一个 json,其中包含一个包含 1 个或多个 HTML 元素的字符串,例如:

"textTop" : "<b>bold</b><div><i>italic</i>..."

我想使用这个字符串在 div 中创建 Html 元素,但我不确定是否可以使用 golang 模板来实现。

type FooBar struct {
    TextTop    string
}

所以我目前将 TextTop 存储在一个字符串中,然后在 html 中显示它:

        <div>
            {{.TextTop}}
        </div>

当然,这会在浏览器中产生以下结果。只是一个包含 string 的 div,我正在传递。: enter image description here

所以我应该为 TextTop 使用不同的类型吗?里面Foobar struct而不是类型字符串,哪个?或者我可以使用 golang 函数从字符串中读取所有 html 元素并将它们呈现在 html 中作为 DOM 的一部分而不仅仅是字符串吗?

最佳答案

为防止转义,将字段声明为类型 template.HTML :

type FooBar struct {
    TextTop    template.HTML
}

有关使用 template.HTML 的安全风险的信息,请参阅链接文档。

关于go - 使用 golang 模板在 div 中填充许多 Html 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48477253/

相关文章:

使用 channel 超时

json - 如何将 JSON 数组转换为对象

go - 从二进制文件中一致地构建/删除个人信息

go - 如何加载和缓存 100 页模板,并呈现正确的模板并在处理程序中返回

Go 模板范围循环引用我的值

go - 迭代模板 slice 中可变数量的项目

go - 如何在golang中解压缩grpc status.details错误?

Go: map 中的整数始终为 0

function - 在 Go 条件模板中使用自定义函数

go - 如何替换 Go 模板中的字符串?