## go模板常用语法 ::: v-pre > **全局变量** * 每个页面都会有一个全局变量(如:```. $global、$data```), 可以在页面内打印出来 ```{{dump $global}}```,结果为一个map数据 * 变量别名```{{$global:=.}}``` 、 ```{{$node:=(GetAreaNodeByCode $m)}}``` 等同于前端(```code: error_code```) > **引入组件** ```go {{include "pc/common/header.html" .}} ~: . 为当前页面全局变量传给组件, 组件内可应用 ``` > **循环语法应用(range)** ```go {{range $index, $item:=$list 10}}
{{$item.name}}
{{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)** * 判断有这个值 ```go {{if $name}} ``` * 判断没有这个值 ```go {{if not $name}} ``` * 判断这个值等于(不能用单引号,会报错),eq(只有eq)可以接受2个或更多个参数,它会将第一个参数和其余参数依次比 ```go {{if eq $name "zhangsan"}} {{if eq $count 10}} {{if eq .T.haveList true}} {{if eq $a1 $a2 $a3}} ``` * 判断这个值不等于 ```go {{if ne $name "zhangsan"}} {{if ne $count 10}} ``` * 判断小于 ```go {{if lt $a1 $a2}} ``` * 判断小于等于 ```go {{if le $a1 $a2}} ``` * 判断大于 ```go {{if gt $a1 $a2}} ``` * 判断大于等于 ```go {{if ge $a1 $a2}} ``` * 判断数组length大于0 ```go {{if gt (.list|len) 0}} {{if gt (len .list) 0}} {{if ne (len .list) 0 }} ``` * 判断条件是或的关系 ```go {{if or $area $city}} ``` * 判断条件是且的关系 ```go {{if and $area $city}} ``` * 条件且和或并列 ```go {{if or (and (eq $type "1") (eq $code 1)) (and (eq $type 2) (eq $code 1))}} ``` PS:语句结束需有{{end}}结尾 > **其它** * 时间格式转换工具函数(等同于过滤器)应用 ```go {{.entDetail.establish_date | date "Y-m-d"}} ``` * 高亮关键词、以html形式渲染(v-html) ```go {{$v.Detail|highlight $v.Keyword "#2ABED1"|ParseHtml}} ``` * 列表循环下标显示(翻页下标接着上一页下标) ```go {range $k,$v:=.list}} {{$k | plus 1}}. {{end}} ``` * 非首页展示(需定义过变量) ```go {{if not .isIndex}} ``` :::