1. 程式人生 > >beego——模板函式

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