智能在线客服系统源码GOFLY开发日志- 7. gin框架加载模板页面

虽然这种由后端输出模板页面的方式不流行了,但是依然有着一定的存在价值。

比如当我需要把模板文件打包进二进制文件中的时候,还是需要后端去渲染输出html模板页面

加载页面这里面我遇到的几个小的需求点,在这里做简单的总结:

模板页面输出渲染html

当后端分配变量字符串是html时,如果前端直接{{.变量名}}展示,会进行html实体转义

想要解决这个问题,就是在分配变量的时候,使用template.HTML(变量)进行下强制类型转换

这种类型的才会被当成html进行渲染

    c.HTML(http.StatusOK, "login.html", gin.H{
        "SystemKefu":       template.HTML(SystemKefu),
    })

模板中进行判断逻辑

后端分配一个变量,模板页面根据这个变量进行判断,根据条件展示不同的html片段

标签结构:
{{if 条件}}
html片段
{{end}}
这个里面条件部分,尽量在分配变量之前就处理好,这样模板里逻辑更清晰一点

    isRegister := true
    if SystemRegister == "2" {
        isRegister = false
    }
    c.HTML(http.StatusOK, "login.html", gin.H{
        "isRegister":       isRegister,
    })

模板里面

{{if .isRegister}}
<a>注册新账户</a>
{{end}}

模板嵌套

当网站里面有公共的头部,底部的时候,就可以用到这个模板嵌套

footer.html

{{define "footer"}}
html片段
{{ end }}

index.html

{{template "footer" .}}

后面还遇到了哪些问题和知识点将会继续进行总结。

演示网站:
gofly.sopans.com

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2
你看我吊吗啊

帖子已从回收站救出

2年前 评论
程序员老狼 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!