beego——模板函式
beego 支援使用者定義模板函式,但是必須在 beego.Run()
呼叫之前,設定如下:
func hello(in string)(out string){ out = in + "world" return } beego.AddFuncMap("hi",hello)
定義之後你就可以在模板中這樣使用了:
{{.Content | hi}}
目前 beego 內建的模板函式如下所示:
-
dateformat
實現了時間的格式化,返回字串,使用方法 {{dateformat .Time “2006-01-02T15:04:05Z07:00”}}。
-
date
實現了類似 PHP 的 date 函式,可以很方便的根據字串返回時間,使用方法 {{date .T “Y-m-d H:i:s”}}。
-
compare
實現了兩個物件的比較,如果相同返回 true,否者 false,使用方法 {{compare .A .B}}。
-
substr
實現了字串的擷取,支援中文擷取的完美擷取,使用方法 {{substr .Str 0 30}}。
-
html2str
實現了把 html 轉化為字串,剔除一些 script、css 之類的元素,返回純文字資訊,使用方法 {{html2str .Htmlinfo}}。
-
str2html
實現了把相應的字串當作 HTML 來輸出,不轉義,使用方法 {{str2html .Strhtml}}。
-
htmlquote
實現了基本的 html 字元轉義,使用方法 {{htmlquote .quote}}。
-
htmlunquote
實現了基本的反轉移字元,使用方法 {{htmlunquote .unquote}}。
-
renderform
根據 StructTag 直接生成對應的表單,使用方法 {{&struct | renderform}}。
-
assets_js
為 js 檔案生成一個
<script>
標籤. 使用方法 {{assets_js src}} -
assets_css
為 css 檔案生成一個
<link>
標籤. 使用方法 {{assets_css src}} -
config
獲取 AppConfig 的值. 使用方法 {{config configType configKey defaultValue}}. 可選的 configType 有 String, Bool, Int, Int64, Float, DIY
-
map_get
獲取
map
的值// In controller Data["m"] = map[string]interface{} { "a": 1, "1": map[string]float64{ "c": 4, }, } // In view {{ map_get m "a" }} // return 1 {{ map_get m 1 "c" }} // return 4
-
urlfor
獲取控制器方法的 URL
{{urlfor "TestController.List"}}