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 string
Age 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
页面。而且开启该功能之后,用户访问目录就会显示该目录下所有的文件列表。
版权声明本文仅代表作者观点,不代表本站立场。本文系作者授权发表,未经许可,不得转载。图文来源网络,侵权删!