日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame模板引擎-模板標簽

模板引擎默認使用了 ?{{? 和 ?}}? 作為左右閉合標簽,開發(fā)者可通過?gview.SetDelimiters?方法設(shè)置自定義的模板閉合標簽。

使用 ?.? 來訪問當前對象的值(模板局部變量)。

使用 ?$? 來引用當前模板根級的上下文(模板全局變量)。

使用 ?$var? 來訪問特定的模板變量。

模板中支持的 GO 語言符號

{{"string"}}     // 一般 string
{{`raw string`}} // 原始 string
{{'c'}}          // byte
{{print nil}}    // nil 也被支持

模板中的 ?pipeline ?

可以是上下文的變量輸出,也可以是函數(shù)通過管道傳遞的返回值

{{. | FuncA | FuncB | FuncC}}

當?pipeline?的值等于:

  • ?false?或?0 ?
  • ?nil?的指針或?interface ?
  • 長度為?0?的?array?, ?slice?, ?map?, ?string?

那么這個?pipeline?被認為是空。

需要注意:在?gf?模板引擎中,當模板中展示的指定變量不存在時,將會顯示為空(標準庫模板引擎會展示??)。

if … else … end

{{if pipeline}}...{{end}}

?if?判斷時,?pipeline?為空時,相當于判斷為?false?。

支持嵌套的循環(huán)

{{if .condition}}
    ...
{{else}}
	{{if .condition2}}
        ...
    {{end}}
{{end}}

也可以使用?else if?進行

{{if .condition}}
    ...
{{else if .condition2}}
    ...
{{else}}
    ...
{{end}}

range … end

{{range pipeline}} {{.}} {{end}}

?pipeline?支持的類型為?slice?, ?map?, ?channel?。

注意:在?range?循環(huán)內(nèi)部,?.? 符號會被覆蓋為以上類型的子元素(局部變量)。如果想在循環(huán)中訪問外部變量(全局變量),請加上?$?符號,如:?{{$.Session.Name}} ?

此外,對應(yīng)的值長度為?0?時,?range?不會執(zhí)行,?.? 不會改變。

例如,遍歷?map?:

{{range $key, $value := .MapContent}}
    {{$key}}:{{$value}}
{{end}}

例如,遍歷?slice?:

{{range $index, $elem := .SliceContent}}
    {{range $key, $value := $elem}}
        {{$key}}:{{$value}}
    {{end}}
{{end}}

with … end

{{with pipeline}}...{{end}}

?with?用于重定向?pipeline?

{{with .Field.NestField.SubField}}
	{{.Var}}
{{end}}

define

?define?可以用來自定義模板內(nèi)容塊(給一段模板內(nèi)容定義一個模板名稱),可用于模塊定義和模板嵌套(使用在?template?標簽中)。

{{define "loop"}}
	
  • {{.Name}}
  • {{end}}

    其中?loop?為該模板內(nèi)容塊的名稱,隨后可使用template標簽調(diào)用模板:

          {{range .Items}} {{template "loop" .}}     {{end}}

    ?define?標簽需要結(jié)合?template?標簽一起使用,并且支持跨模板使用(在同一模板目錄/子目錄下有效,原理是使用的?ParseFiles?方法解析模板文件)。

    template

    {{template "模板名稱" pipeline}}

    將對應(yīng)的上下文?pipeline?傳給模板,才可以在模板中調(diào)用。

    注意:?template?標簽參數(shù)為模板名稱,而不是模板文件路徑,?template?標簽不支持模板文件路徑。

    ?template?標簽需要結(jié)合?define?標簽一起使用,并且支持跨模板使用(在同一模板目錄/子目錄下有效,原理是使用的?ParseFiles?方法解析模板文件)。

    include

    該標簽為?gf?框架模板引擎新增標簽

    {{include "模板文件名(需要帶完整文件名后綴)" pipeline}}

    在模板中可以使用?include?標簽載入其他模板(任意路徑),模板文件名支持相對路徑以及文件的系統(tǒng)絕對路徑。如果想要把當前模板的模板變量傳遞給子模板(嵌套模板),可以這樣:

    {{include "模板文件名(需要帶完整文件名后綴)" .}}

    與?template?標簽的區(qū)別是:?include?僅支持文件路徑,不支持模板名稱;而?tempalte?標簽僅支持模板名稱,不支持文件路徑。

    注釋

    允許多行文本注釋,不允許嵌套。

    {{/*
    comment content
    support new line
    */}}

    網(wǎng)站名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame模板引擎-模板標簽
    文章URL:http://m.5511xx.com/article/ccchhos.html