传参如何不转义
时间: 2024-02-12 12:08:37 浏览: 34
在 Go 语言中,可以使用 `template.HTML` 或 `template.JS` 类型来标记不需要进行 HTML 转义或 JavaScript 转义的字符串。这两个类型都是 `string` 的别名类型,但是会告诉模板引擎不要对其进行转义。
例如,如果想要在 Pongo2 模板中输出一个 HTML 标签,可以将标签代码放在 `template.HTML` 类型的字符串中,如下所示:
```
import "html/template"
func handleRequest(c *gin.Context) {
htmlContent := template.HTML("<p>Hello, world!</p>")
c.HTML(http.StatusOK, "index.html", gin.H{
"htmlContent": htmlContent,
})
}
```
在 Pongo2 模板中,可以直接使用 `htmlContent` 变量输出 HTML 标签,而不需要进行转义,例如:
```
{{ htmlContent }}
```
同样地,如果想要在模板中输出一段 JavaScript 代码,可以将代码放在 `template.JS` 类型的字符串中,如下所示:
```
import "html/template"
func handleRequest(c *gin.Context) {
jsCode := template.JS("console.log('Hello, world!');")
c.HTML(http.StatusOK, "index.html", gin.H{
"jsCode": jsCode,
})
}
```
在 Pongo2 模板中,可以直接使用 `jsCode` 变量输出 JavaScript 代码,而不需要进行转义,例如:
```
<script>
{{ jsCode }}
</script>
```