## 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}}
```
:::