• 注释
{{/* 注释 */}}
  • 变量渲染
{{.Name}}
  • 定义局部变量
//go模板,with语句就是创建一个封闭的作用域
{{with "world"}}{{.}}
{{end}}
  • 定义子模板
{{define "header"}}<div>title</div>
{{end}}
//使用子模板
{{template "header"}}
  • 管道函数

用法1:

//调用一个无参的函数,类似function()
{{FuncName}}

用法2:

//调用一个有参的函数,类似split(str,",")
{{split .str "," }}

用法3:
将竖线“|”左边的变量值作为函数参数传送

//调用一个有参的函数,类似trim(str)
{{.str | trim }}
//调用多个函数
{{.str | trim | len}}
  • 条件判断
{{if condition}}
//...
{{else}}
//...
{{end}}

【技巧】如果需要去除空行,则需要使用以下方法

{{- if condition}}
//...
{{- else}}
//...
{{- end}}
  • 遍历

用法一:

{{range $key,$value := .Lists }}//{{$key}} => {{$value}}
{{end}}

用法二:

{{range .Lists }}//{{.}}
{{end}}

用法三:

{{range .var}}//{{.}}
{{else}}//没有可遍历的值时,则执行else
{{end}}
  • 嵌入子模板
{{template "header.html"}}
//向子模板传值
{{template "header.html" .}}

预定义的模板全局函数

  • and

    {{and x y}}
    //等同于Golang中的:x and y
    
  • or
{{or x y}}
//等同于Golang中的:x || y
  • call

    //call 第一个参数必须是一个函数,其余参数作为该函数的参数
    {{call add 1 2}}
    
  • html
    转义文本中的html标签,如将“<”转义为“<”,“>”转义为“>”等

  • index
    返回index后面的第一个参数的某个索引对应的元素值,其余的参数为索引值

    {{index .array 1 2 3}}
    //表示:array[1][2][3]
    //array必须是一个map、slice或数组
    
  • js
    返回用JavaScript的escape(编码)处理后的文本

  • len
    返回参数的长度值(int类型)

  • not
    返回参数的否定值(bool类型)

  • print
    fmt.Sprint的别名

  • printf
    fmt.Sprintf的别名

  • println
    fmt.Sprintln的别名

  • urlquery
    url参数编码

Revel函数

  • append
    向数组添加变量或创建数组

    {{append . "moreScripts" "js/jquery-ui-1.7.2.custom.min.js"}}{{range .moreStyles}}<link rel="stylesheet" type="text/css" href="/public/{{.}}">
    {{end}}
    
  • checkbox
    帮助构造HTML复选框输入元素,例如:

    {{with $checkboxField := field "testField" .}}{{checkbox $checkboxField "someValue"}}
    {{end}}
    
  • date, datetime, timeago
    根据应用程序设置的默认日期和时间格式格式化日期。

    {{date .MyDate}}
    {{datetime .MyDateTime}}
    
  • even 取余,N % 2 == 0 这是一个方便表格行着色的函数。

    {{range $index, $element := .results}}
    <tr class="{{if even $index}}light-row{{else}}dark-row{{end}}">//...
    </tr>
    {{end}}
    
  • field
    输入字段的助手函数
    给定一个字段名,它返回一个包含以下成员的结构:
    Id: 字段名,已转换为适合作为HTML元素ID。
    Name: 字段名
    Value: 当前ViewArgs字段的值
    Options:当前ViewArgs选项列表
    Flash: 字段的flash值.
    Error: 有与此字段关联的错误信息
    ErrorClass: 原始字符串“haserror”, 如果有错误时显示此样式, 否则为 ""

    {{with $field := field "booking.CheckInDate" .}}<p class="{{$field.ErrorClass}}"><strong>Check In Date:</strong><input type="text" size="10" name="{{$field.Name}}"class="datepicker" value="{{$field.Flash}}"> *<span class="error">{{$field.Error}}</span></p>
    {{end}}
    

    选项列表可以使用闪存来设置选项

    c.ViewArgs["options"] = map[string][]string{"record.Status": map[string][]string{"Started","Ongoing", "Finished"},
    }
    
  • i18ntemplate

  • msg

  • nl2br
    将换行符转换为HTML换行符。

    <div class="comment">{{nl2br .commentText}}</div>
    
  • option
    构造HTML option 标签的助手函数

    {{with $field := field "booking.Beds" .}}
    <select name="{{$field.Name}}">{{option $field "1" "One king-size bed"}}{{option $field "2" "Two double beds"}}{{option $field "3" "Three beds"}}
    </select>
    {{end}}
    
  • pad 在给定的字符串上加上空格字符" "

    {{pad "my string", 8}}
    
  • pluralize 正确复数单词的助手函数。

    There are {{.numComments}} comment{{pluralize (len comments) "" "s"}}
    
  • radio 构造HTML Radio元素,例如:

    {{with $field := field "booking.Smoking" .}}{{radio $field "true"}} Smoking{{radio $field "false"}} Non smoking
    {{end}}
    
  • raw
    打印未编码的原始文本。

    <div class="body">{{raw .blogBody}}</div>
    
  • set 设置变量内容

    {{set . "title" "Basic Chat room"}}
    <h1>{{.title}}</h1>
    
  • SLUG 创建一个slug

{{slug "SomeThing String"}}
  • url
    根据Controller.Method解析路由地址

    <a href="{{url "MyApp.ContactPage"}}">Contact</a>
    Click <a href="{{url "Products.ShowProduct" 123}}">here</a> for more.
    
  • 自定义函数

布尔函数

  • 【eq】 返回表达式“arg1 == arg2”的布尔值
{{eq arg1 arg2 arg3 arg4}}
//eq只接受两个参数进行比较,对于简单的多路相等测试,后面其它的参数将分别依次与第一个参数进行比较
//相当于:arg1==arg2 || arg1==arg3 || arg1==arg4 ...
  • 【ne】 返回表达式“arg1 != arg2”的布尔值
  • 【lt】 返回表达式“arg1 < arg2”的布尔值
  • 【le】 返回表达式“arg1 <= arg2”的布尔值
  • 【gt】 返回表达式“arg1 > arg2”的布尔值
  • 【ge】 返回表达式“arg1 >= arg2”的布尔值

Revel模板引擎Template基本语法相关推荐

  1. js模板引擎Template.js使用详解及免费下载template.js

    这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 template.js 一款 JavaScript 模板引擎, ...

  2. JavaScript模板引擎Template.js使用

    文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法.template.js 一款 JavaScript 模板引擎,简单,好用.提供一套模板语法,用户可以写一个模板区块, ...

  3. JavaScript模板引擎Template.js使用详解

    这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 template.js 一款 JavaScript 模板引擎, ...

  4. JavaScript模板引擎Template.js基本使用详解

    template.js是一款JavaScript模板引擎,提供一套模板语法,简单好用,开发者可以写一个模板区块,每次传入的数据,生成对应数据产生的HTML片段,渲染不同的效果.官网:简洁语法版 htt ...

  5. 模板引擎---template的简单使用

    (1)art-template的实现步骤 (1)导入template(2)定义数据(3)定义模板(4)调用template(5)渲染HTML结构 (2)模板引擎的语法 template('模板的Id' ...

  6. JavaScript模板引擎Template.js

    template.js 一款 JavaScript 模板引擎,简单,好用.提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同的效果.https:// ...

  7. 高性能JavaScript模板引擎template.js原理解析

    点击有惊喜 artTemplate是新一代javascript模板引擎,它在v8中的渲染效率可接近javascript性能极限,在chrome下渲染效率测试中分别是知名引擎Mustache与micro ...

  8. 前端模板引擎template之如何实现if-else、遍历

    1.先来了解一下template模板 <!doctype html> <html lang="en"> <head><meta chars ...

  9. JavaScript中template模板引擎

    这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 template.js 一款 JavaScript 模板引擎, ...

  10. KendoUI模板引擎 - #号语法

    KendoUI的模板引擎使用的语法叫做"#号语法(Hash Syntax)",主要用来完成两件事情:渲染数据和执行JS表达式. 从JS对象渲染数据到HTML模板 使用等号渲染原始值 ...

最新文章

  1. 9soc sensor与bayer sensor 区别,内外置isp
  2. python计算while循环次数_python-----运算符及while循环
  3. 为什么感觉每年手机都在升级CPU,但始终都会卡顿?
  4. python下载哪个版本好-Python下载哪个版本比较好?
  5. cas内外网同时访问_并发编程高手必知——CAS详解
  6. 【原创】公司各个阶段 CTO 需要做什么?(上篇)
  7. 结构梁配筋最牛插件_国内外好用的Revit插件汇总
  8. es java 创建索引_Elasticsearch(ES) 创建索引
  9. 将excel表格嵌入html,excel中embed的使用
  10. vue动态修改网页标题(也可用于vx里的网页标题)
  11. 你需要知道的WAMP5
  12. 【思维导图怎么画】万彩脑图大师教程 | 嵌入企业Logo到思维导图
  13. Android 音视频编解码 MediaCodec
  14. 炸了!3年图片都没了!
  15. 第1139期AI100_机器学习日报(2017-10-31)
  16. 纪录 vue 滚动条失效
  17. VS Code 自动保存设置及不成功原因
  18. 自学编程推荐的11个学习及刷题网站
  19. ArcBlock ⑪ 月报 | 无惧寒冬 ABT 2019 区块链远征启程
  20. 打败魔王(这是2022中兴捧月打榜的一道题)

热门文章

  1. 《OpenCv视觉之眼》Python图像处理二十:Opencv图像美化处理之图像流年、光照、浮雕、素描、怀旧、滤镜、毛玻璃、油漆特效处理
  2. RingBuffer
  3. 递归求平均数|理解|讲解| c语言
  4. 什么是Java api
  5. 怎么让背景铺满整个页面_word怎么让背景图片铺满整个页面
  6. 转移操作和占用操作主机
  7. linux 临界区保护方法,操作系统-信号量临界区保护,
  8. 关于Environment类的使用
  9. vb 复制 剪贴板 html,VB.NET中调用系统的剪贴板完成数据的复制和粘贴
  10. 心率变异性(HRV)