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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Revel模板引擎Template基本语法

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

用法1:

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

用法2:

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

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

//調(diào)用一個有參的函數(shù),類似trim(str) {{.str | trim }} //調(diào)用多個函數(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}}//沒有可遍歷的值時,則執(zhí)行else {{end}}
  • 嵌入子模板
{{template "header.html"}} //向子模板傳值 {{template "header.html" .}}

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

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

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

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

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

  • len
    返回參數(shù)的長度值(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
    幫助構造HTML復選框輸入元素,例如:

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

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

    {{range $index, $element := .results}} <tr class="{{if even $index}}light-row{{else}}dark-row{{end}}">//... </tr> {{end}}
  • field
    輸入字段的助手函數(shù)
    給定一個字段名,它返回一個包含以下成員的結構:
    Id: 字段名,已轉(zhuǎn)換為適合作為HTML元素ID。
    Name: 字段名
    Value: 當前ViewArgs字段的值
    Options:當前ViewArgs選項列表
    Flash: 字段的flash值.
    Error: 有與此字段關聯(lián)的錯誤信息
    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
    將換行符轉(zhuǎn)換為HTML換行符。

    <div class="comment">{{nl2br .commentText}}</div>
  • option
    構造HTML option 標簽的助手函數(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 正確復數(shù)單詞的助手函數(shù)。

    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 設置變量內(nèi)容

    {{set . "title" "Basic Chat room"}} <h1>{{.title}}</h1>
  • SLUG 創(chuàng)建一個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】 返回表達式“arg1 == arg2”的布爾值
{{eq arg1 arg2 arg3 arg4}} //eq只接受兩個參數(shù)進行比較,對于簡單的多路相等測試,后面其它的參數(shù)將分別依次與第一個參數(shù)進行比較 //相當于:arg1==arg2 || arg1==arg3 || arg1==arg4 ...
  • 【ne】 返回表達式“arg1 != arg2”的布爾值
  • 【lt】 返回表達式“arg1 < arg2”的布爾值
  • 【le】 返回表達式“arg1 <= arg2”的布爾值
  • 【gt】 返回表達式“arg1 > arg2”的布爾值
  • 【ge】 返回表達式“arg1 >= arg2”的布爾值

總結

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

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