Revel模板引擎Template基本语法
- 注释
{{/* 注释 */}}
- 变量渲染
{{.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基本语法相关推荐
- js模板引擎Template.js使用详解及免费下载template.js
这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 template.js 一款 JavaScript 模板引擎, ...
- JavaScript模板引擎Template.js使用
文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法.template.js 一款 JavaScript 模板引擎,简单,好用.提供一套模板语法,用户可以写一个模板区块, ...
- JavaScript模板引擎Template.js使用详解
这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 template.js 一款 JavaScript 模板引擎, ...
- JavaScript模板引擎Template.js基本使用详解
template.js是一款JavaScript模板引擎,提供一套模板语法,简单好用,开发者可以写一个模板区块,每次传入的数据,生成对应数据产生的HTML片段,渲染不同的效果.官网:简洁语法版 htt ...
- 模板引擎---template的简单使用
(1)art-template的实现步骤 (1)导入template(2)定义数据(3)定义模板(4)调用template(5)渲染HTML结构 (2)模板引擎的语法 template('模板的Id' ...
- JavaScript模板引擎Template.js
template.js 一款 JavaScript 模板引擎,简单,好用.提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同的效果.https:// ...
- 高性能JavaScript模板引擎template.js原理解析
点击有惊喜 artTemplate是新一代javascript模板引擎,它在v8中的渲染效率可接近javascript性能极限,在chrome下渲染效率测试中分别是知名引擎Mustache与micro ...
- 前端模板引擎template之如何实现if-else、遍历
1.先来了解一下template模板 <!doctype html> <html lang="en"> <head><meta chars ...
- JavaScript中template模板引擎
这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 template.js 一款 JavaScript 模板引擎, ...
- KendoUI模板引擎 - #号语法
KendoUI的模板引擎使用的语法叫做"#号语法(Hash Syntax)",主要用来完成两件事情:渲染数据和执行JS表达式. 从JS对象渲染数据到HTML模板 使用等号渲染原始值 ...
最新文章
- 9soc sensor与bayer sensor 区别,内外置isp
- python计算while循环次数_python-----运算符及while循环
- 为什么感觉每年手机都在升级CPU,但始终都会卡顿?
- python下载哪个版本好-Python下载哪个版本比较好?
- cas内外网同时访问_并发编程高手必知——CAS详解
- 【原创】公司各个阶段 CTO 需要做什么?(上篇)
- 结构梁配筋最牛插件_国内外好用的Revit插件汇总
- es java 创建索引_Elasticsearch(ES) 创建索引
- 将excel表格嵌入html,excel中embed的使用
- vue动态修改网页标题(也可用于vx里的网页标题)
- 你需要知道的WAMP5
- 【思维导图怎么画】万彩脑图大师教程 | 嵌入企业Logo到思维导图
- Android 音视频编解码 MediaCodec
- 炸了!3年图片都没了!
- 第1139期AI100_机器学习日报(2017-10-31)
- 纪录 vue 滚动条失效
- VS Code 自动保存设置及不成功原因
- 自学编程推荐的11个学习及刷题网站
- ArcBlock ⑪ 月报 | 无惧寒冬 ABT 2019 区块链远征启程
- 打败魔王(这是2022中兴捧月打榜的一道题)
热门文章
- 《OpenCv视觉之眼》Python图像处理二十:Opencv图像美化处理之图像流年、光照、浮雕、素描、怀旧、滤镜、毛玻璃、油漆特效处理
- RingBuffer
- 递归求平均数|理解|讲解| c语言
- 什么是Java api
- 怎么让背景铺满整个页面_word怎么让背景图片铺满整个页面
- 转移操作和占用操作主机
- linux 临界区保护方法,操作系统-信号量临界区保护,
- 关于Environment类的使用
- vb 复制 剪贴板 html,VB.NET中调用系统的剪贴板完成数据的复制和粘贴
- 心率变异性(HRV)