go模板常用语法.md 2.3 KB

go模板常用语法

::: v-pre

全局变量

  • 每个页面都会有一个全局变量(如:. $global、$data), 可以在页面内打印出来 {{dump $global}},结果为一个map数据
  • 变量别名{{$global:=.}}{{$node:=(GetAreaNodeByCode $m)}} 等同于前端(code: error_code

引入组件

{{include "pc/common/header.html" .}}
~: . 为当前页面全局变量传给组件, 组件内可应用

循环语法应用(range)

{{range $index, $item:=$list 10}}
    <div>{{$item.name}}</div>
{{end}}

$index: 等同于v-for="(item,index) in list"里的index
$item: 等同于v-for="(item,index) in list"里的item
$list: 等同于v-for="(item,index) in list"里的list
10: 等同于截取数组前10条 不加则默认循环全部数据

判断语法应用(if)

  • 判断有这个值

    {{if $name}}
    
  • 判断没有这个值

    {{if not $name}}
    
  • 判断这个值等于(不能用单引号,会报错),eq(只有eq)可以接受2个或更多个参数,它会将第一个参数和其余参数依次比

    {{if eq $name "zhangsan"}}
    {{if eq $count 10}}
    {{if eq .T.haveList true}}
    {{if eq $a1 $a2 $a3}}
    
  • 判断这个值不等于

    {{if ne $name "zhangsan"}}
    {{if ne $count 10}}
    
  • 判断小于

    {{if lt $a1 $a2}}
    
  • 判断小于等于

    {{if le $a1 $a2}}
    
  • 判断大于

    {{if gt $a1 $a2}}
    
  • 判断大于等于

    {{if ge $a1 $a2}}
    
  • 判断数组length大于0

    {{if gt (.list|len) 0}}
    {{if gt (len .list) 0}}
    {{if ne (len .list) 0 }}
    
  • 判断条件是或的关系

    {{if or $area $city}}
    
  • 判断条件是且的关系

    {{if and $area $city}}
    
  • 条件且和或并列

    {{if or (and (eq $type "1") (eq $code 1)) (and (eq $type 2) (eq $code 1))}}
    

PS:语句结束需有{{end}}结尾

其它

  • 时间格式转换工具函数(等同于过滤器)应用

    {{.entDetail.establish_date | date "Y-m-d"}}
    
  • 高亮关键词、以html形式渲染(v-html)

    {{$v.Detail|highlight $v.Keyword "#2ABED1"|ParseHtml}}
    
  • 列表循环下标显示(翻页下标接着上一页下标)

    {range $k,$v:=.list}} <em>{{$k | plus 1}}.</em> {{end}}
    
  • 非首页展示(需定义过变量)

    {{if not .isIndex}}
    

:::