go view 模板

基本语法

go 统一使用了 {{ 和 }} 作为左右标签,没有其他的标签符号。如果您想要修改为其它符号,可以参考 模板标签

使用 . 来访问当前位置的上下文

使用 $ 来引用当前模板根级的上下文

使用 $var 来访问创建的变量

Beego 中支持直接载入文件模板

{{template "path/to/head.html" .}}

beego 中默认的模板目录是 views  可以设置:

  1. beego.ViewsPath = "myviewpath"


模板标签

Go 语言的默认模板采用了 {{ 和 }} 作为左右标签,但是我们有时候在开发中可能界面是采用了 AngularJS 开发,他的模板也是这个标签,故而引起了冲突。在 beego 中你可以通过配置文件或者直接设置配置变量修改:

 web.TemplateLeft = "<<<"
 web.TemplateRight = ">>>"

模板数据

模板中的数据是通过在 Controller 中 this.Data 获取的,所以如果你想在模板中获取内容 {{.Content}} ,那么你需要在 Controller 中如下设置:

 复制代码this.Data["Content"] = "value"

如何使用各种类型的数据渲染:

  • 结构体

    结构体结构


    控制器数据赋值


    模板渲染数据如下:

     复制代码
    1.  the username is {{.a.Name}}

    2.  the age is {{.a.Age}}

    3.  this.Data["a"]=&A{Name:"astaxie",Age:25}

    4. type A struct{

    5.  Name string

    6.  Age  int

    7. }

  • map

    控制器数据赋值


    模板渲染数据如下:

     复制代码
    1.  the username is {{.m.name}}

    2.  the username is {{.m.nickname}}

    3.  mp["name"]="astaxie"

    4.  mp["nickname"] = "haha"

    5.  this.Data["m"]=mp

  • slice

    控制器数据赋值


    模板渲染数据如下:

     复制代码
    1.  {{range $key, $val := .s}}

    2.  {{$key}}

    3.  {{$val}}

    4.  {{end}}

    5.  ss :=[]string{"a","b","c"}

    6.  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 页面。而且开启该功能之后,用户访问目录就会显示该目录下所有的文件列表。

版权声明本文仅代表作者观点,不代表本站立场。本文系作者授权发表,未经许可,不得转载。图文来源网络,侵权删!

搜索