golange 模板
? golange 模板 ?    2014-09-19 21:00:39    880    1    0

if

这些存在吗? 1.1.2不存在! 1.3存在.

eq
	Returns the boolean truth of arg1 == arg2
ne
	Returns the boolean truth of arg1 != arg2
lt
	Returns the boolean truth of arg1 < arg2
le
	Returns the boolean truth of arg1 <= arg2
gt
	Returns the boolean truth of arg1 > arg2
ge
	Returns the boolean truth of arg1 >= arg2
{{if a b}}
do something
{{end}}

range

知道用$.来获取global

用法1:
{{range $k, $v := .Var}} {{$k}} => {{$v}} {{end}}
range...end结构内部如要使用外部的变量,比如.Var2,需要这样写:$.Var2
(即:在外部变量名称前加符号“$”即可,单独的“$”意义等同于global)
用法2:
{{range .Var}} {{.}} {{end}}
用法3:
{{range pipeline}} T1 {{else}} T0 {{end}}
当没有可遍历的值时,将执行else部分。

{{range $i := N 1 10}}

http://stackoverflow.com/questions/22713500/iterating-a-range-of-integers-in-go-templates

func N(start, end int) (stream chan int) {
    stream = make(chan int)
    go func() {
        for i := start; i <= end; i++ {
            stream <- i
        }
        close(stream)
    }()
    return
}

templ := `{{range $i := N 1 10}}
            <div>{{$i}}</div>
      {{end}}`

t := template.New("foo").Funcs(template.FuncMap{"N": N})

and 是一个方法

{{if and 变量1 变量2}}
{{end}}

自定义方法传参

{{ func param1 param2 }}
或
{{ (func param1 param2) }}

pipeline/函数

用法1:
{{FuncName1}}
此标签将调用名称为“FuncName1”的模板函数(等同于执行“FuncName1()”,不传递任何参数)并输出其返回值。

用法2: {{FuncName1 "参数值1" "参数值2"}} 此标签将调用“FuncName1("参数值1", "参数值2")”,并输出其返回值
用法3: {{.Admpub|FuncName1}} 此标签将调用名称为“FuncName1”的模板函数(等同于执行“FuncName1(this.Admpub)”,将竖线“|”左边的“.Admpub”变量值作为函数参数传送)并输出其返回值。

pipeline 嵌套

{{add $.pageInfo.CurPage | urlConcat $.url "page" }} 前面add 的值作为 urlConcat的最后一个参数, 也可以这样:
{{urlConcat $.url "page" (add $.pageInfo.CurPage)}} 用括号来分隔


上一篇: golang struct调用方法问题

下一篇: leanote功能列表

880 人读过