Golang Web下返回HTML內容處理方法
阿新 • • 發佈:2020-07-25
有兩種顯示方式,都是一樣的,假設我們的方法就叫say,兩種呼叫如下:
{{ say "<div style=\"\">你好</div>" }}
{{"<div style=\"\">你好</div>" |say}}
master是主模板
如果我們要在模板中和頁面中都要做這種處理,我們見下面的程式碼
主模板程式碼
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>模板上面內容</p>
{{block "context" .}}{{end}}
<p>模板下面內容</p>
{{ say "<div style=\"background-color:red;\">你好</div>" }}
</body>
</html>
頁面內容
{{template "master" .}}
{{define "context"}}
{{"<div style=\"background-color:red;\">你好</div>" |say}}
{{.}}
<p>user內容</p >
{{end}}
在模板中和頁面中都 顯示HTML內容,我們可以通過template.New().Funcs() 設定 一個處理方法
見Main()程式碼
package main
import (
"github.com/gin-gonic/gin"
"html/template"
"log"
)
// 通過該方法可以將內容以HTML的形式輸出,返回型別為template.HTML
func say(s string) template.HTML {
return template.HTML(s)
}
func main(){
engin:=gin.Default()
engin.GET( "/user", func(context *gin.Context) {
// 設定funcMap
funcMap:=template.FuncMap{"say":say,}
// 建立模板並加入設定FuncMap
t,err:= template.New("user").Funcs(funcMap).ParseFiles("./view/template/master", "./view/user/user")
if err!=nil{
log.Panicln("template.funcs err:",err)
}
t.ExecuteTemplate(context.Writer,"user","中間內容")
})
engin.Run()
}
結果