go view 模板
基本语法
go 统一使用了 {{ 和 }} 作为左右标签,没有其他的标签符号。如果您想要修改为其它符号,可以参考 模板标签。
使用 . 来访问当前位置的上下文
使用 $ 来引用当前模板根级的上下文
使用 $var 来访问创建的变量
Beego 中支持直接载入文件模板
{{template "path/to/head.html" .}}beego 中默认的模板目录是 views 可以设置:
beego.ViewsPath = "myviewpath"
模板标签
Go 语言的默认模板采用了 {{ 和 }} 作为左右标签,但是我们有时候在开发中可能界面是采用了 AngularJS 开发,他的模板也是这个标签,故而引起了冲突。在 beego 中你可以通过配置文件或者直接设置配置变量修改:
web.TemplateLeft = "<<<" web.TemplateRight = ">>>"
模板数据
模板中的数据是通过在 Controller 中 this.Data 获取的,所以如果你想在模板中获取内容 {{.Content}} ,那么你需要在 Controller 中如下设置:
复制代码this.Data["Content"] = "value"
如何使用各种类型的数据渲染:
结构体
结构体结构
控制器数据赋值
模板渲染数据如下:
复制代码
the username is {{.a.Name}}the age is {{.a.Age}}this.Data["a"]=&A{Name:"astaxie",Age:25}type A struct{Name stringAge int}
map
控制器数据赋值
模板渲染数据如下:
复制代码
the username is {{.m.name}}the username is {{.m.nickname}}mp["name"]="astaxie"mp["nickname"] = "haha"this.Data["m"]=mp
slice
控制器数据赋值
模板渲染数据如下:
复制代码
{{range $key, $val := .s}}{{$key}}{{$val}}{{end}}ss :=[]string{"a","b","c"}this.Data["s"]=ss
静态文件
Go 语言内部其实已经提供了 http.ServeFile,通过这个函数可以实现静态文件的服务。beego 针对这个功能进行了一层封装,通过下面的方式进行静态文件注册:
web.SetStaticPath("/static","public")第一个参数是路径,url 路径信息
第二个参数是静态文件目录(相对应用所在的目录)
beego 支持多个目录的静态文件注册,用户可以注册如下的静态文件目录:
web.SetStaticPath("/images","images")
web.SetStaticPath("/css","css")
web.SetStaticPath("/js","js")默认情况下 beego 会判断目录下文件是否存在,不存在直接返回 404 页面,如果请求的是 index.html,那么由于 http.ServeFile 默认是会跳转的,不提供该页面的显示。因此 beego 可以设置 web.BConfig.WebConfig.DirectoryIndex=true 这样来使得显示 index.html 页面。而且开启该功能之后,用户访问目录就会显示该目录下所有的文件列表。
版权声明本文仅代表作者观点,不代表本站立场。本文系作者授权发表,未经许可,不得转载。图文来源网络,侵权删!