日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Revel模板引擎Template基本语法

發(fā)布時(shí)間:2023/12/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Revel模板引擎Template基本语法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 注釋
{{/* 注釋 */}}
  • 變量渲染
{{.Name}}
  • 定義局部變量
//go模板,with語(yǔ)句就是創(chuàng)建一個(gè)封閉的作用域 {{with "world"}}{{.}} {{end}}
  • 定義子模板
{{define "header"}}<div>title</div> {{end}} //使用子模板 {{template "header"}}
  • 管道函數(shù)

用法1:

//調(diào)用一個(gè)無(wú)參的函數(shù),類似function() {{FuncName}}

用法2:

//調(diào)用一個(gè)有參的函數(shù),類似split(str,",") {{split .str "," }}

用法3:
將豎線“|”左邊的變量值作為函數(shù)參數(shù)傳送

//調(diào)用一個(gè)有參的函數(shù),類似trim(str) {{.str | trim }} //調(diào)用多個(gè)函數(shù) {{.str | trim | len}}
  • 條件判斷
{{if condition}} //... {{else}} //... {{end}}

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

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

用法一:

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

用法二:

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

用法三:

{{range .var}}//{{.}} {{else}}//沒(méi)有可遍歷的值時(shí),則執(zhí)行else {{end}}
  • 嵌入子模板
{{template "header.html"}} //向子模板傳值 {{template "header.html" .}}

預(yù)定義的模板全局函數(shù)

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

    //call 第一個(gè)參數(shù)必須是一個(gè)函數(shù),其余參數(shù)作為該函數(shù)的參數(shù) {{call add 1 2}}
  • html
    轉(zhuǎn)義文本中的html標(biāo)簽,如將“<”轉(zhuǎn)義為“<”,“>”轉(zhuǎn)義為“>”等

  • index
    返回index后面的第一個(gè)參數(shù)的某個(gè)索引對(duì)應(yīng)的元素值,其余的參數(shù)為索引值

    {{index .array 1 2 3}} //表示:array[1][2][3] //array必須是一個(gè)map、slice或數(shù)組
  • js
    返回用JavaScript的escape(編碼)處理后的文本

  • len
    返回參數(shù)的長(zhǎng)度值(int類型)

  • not
    返回參數(shù)的否定值(bool類型)

  • print
    fmt.Sprint的別名

  • printf
    fmt.Sprintf的別名

  • println
    fmt.Sprintln的別名

  • urlquery
    url參數(shù)編碼

Revel函數(shù)

  • append
    向數(shù)組添加變量或創(chuàng)建數(shù)組

    {{append . "moreScripts" "js/jquery-ui-1.7.2.custom.min.js"}}{{range .moreStyles}}<link rel="stylesheet" type="text/css" href="/public/{{.}}"> {{end}}
  • checkbox
    幫助構(gòu)造HTML復(fù)選框輸入元素,例如:

    {{with $checkboxField := field "testField" .}}{{checkbox $checkboxField "someValue"}} {{end}}
  • date, datetime, timeago
    根據(jù)應(yīng)用程序設(shè)置的默認(rèn)日期和時(shí)間格式格式化日期。

    {{date .MyDate}} {{datetime .MyDateTime}}
  • even 取余,N % 2 == 0 這是一個(gè)方便表格行著色的函數(shù)。

    {{range $index, $element := .results}} <tr class="{{if even $index}}light-row{{else}}dark-row{{end}}">//... </tr> {{end}}
  • field
    輸入字段的助手函數(shù)
    給定一個(gè)字段名,它返回一個(gè)包含以下成員的結(jié)構(gòu):
    Id: 字段名,已轉(zhuǎn)換為適合作為HTML元素ID。
    Name: 字段名
    Value: 當(dāng)前ViewArgs字段的值
    Options:當(dāng)前ViewArgs選項(xiàng)列表
    Flash: 字段的flash值.
    Error: 有與此字段關(guān)聯(lián)的錯(cuò)誤信息
    ErrorClass: 原始字符串“haserror”, 如果有錯(cuò)誤時(shí)顯示此樣式, 否則為 ""

    {{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}}

    選項(xiàng)列表可以使用閃存來(lái)設(shè)置選項(xiàng)

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

  • msg

  • nl2br
    將換行符轉(zhuǎn)換為HTML換行符。

    <div class="comment">{{nl2br .commentText}}</div>
  • option
    構(gòu)造HTML option 標(biāo)簽的助手函數(shù)

    {{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 正確復(fù)數(shù)單詞的助手函數(shù)。

    There are {{.numComments}} comment{{pluralize (len comments) "" "s"}}
  • radio 構(gòu)造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 設(shè)置變量?jī)?nèi)容

    {{set . "title" "Basic Chat room"}} <h1>{{.title}}</h1>
  • SLUG 創(chuàng)建一個(gè)slug

{{slug "SomeThing String"}}
  • url
    根據(jù)Controller.Method解析路由地址

    <a href="{{url "MyApp.ContactPage"}}">Contact</a> Click <a href="{{url "Products.ShowProduct" 123}}">here</a> for more.
  • 自定義函數(shù)

布爾函數(shù)

  • 【eq】 返回表達(dá)式“arg1 == arg2”的布爾值
{{eq arg1 arg2 arg3 arg4}} //eq只接受兩個(gè)參數(shù)進(jìn)行比較,對(duì)于簡(jiǎn)單的多路相等測(cè)試,后面其它的參數(shù)將分別依次與第一個(gè)參數(shù)進(jìn)行比較 //相當(dāng)于:arg1==arg2 || arg1==arg3 || arg1==arg4 ...
  • 【ne】 返回表達(dá)式“arg1 != arg2”的布爾值
  • 【lt】 返回表達(dá)式“arg1 < arg2”的布爾值
  • 【le】 返回表達(dá)式“arg1 <= arg2”的布爾值
  • 【gt】 返回表達(dá)式“arg1 > arg2”的布爾值
  • 【ge】 返回表達(dá)式“arg1 >= arg2”的布爾值

總結(jié)

以上是生活随笔為你收集整理的Revel模板引擎Template基本语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。