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

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

新聞中心

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

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

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

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

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

模板中支持的 GO 語言符號(hào)

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

模板中的 ?pipeline ?

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

{{. | FuncA | FuncB | FuncC}}

當(dāng)?pipeline?的值等于:

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

那么這個(gè)?pipeline?被認(rèn)為是空。

需要注意:在?gf?模板引擎中,當(dāng)模板中展示的指定變量不存在時(shí),將會(huì)顯示為空(標(biāo)準(zhǔn)庫模板引擎會(huì)展示??)。

if … else … end

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

?if?判斷時(shí),?pipeline?為空時(shí),相當(dāng)于判斷為?false?。

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

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

也可以使用?else if?進(jìn)行

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

range … end

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

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

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

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

例如,遍歷?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)容定義一個(gè)模板名稱),可用于模塊定義和模板嵌套(使用在?template?標(biāo)簽中)。

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

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

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

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

    template

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

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

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

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

    include

    該標(biāo)簽為?gf?框架模板引擎新增標(biāo)簽

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

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

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

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

    注釋

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

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

    當(dāng)前標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame模板引擎-模板標(biāo)簽
    標(biāo)題來源:http://m.5511xx.com/article/ccchhos.html