go-模板引擎
動作
Go 模板的動作就是一些嵌入到模板里面的命令,這些命令在模板中需要放到兩個
大括號里{{ 動作 }},之前我們已經用過一個很重要的動作:點(.),它代表了傳遞給模
板的資料,下面我們再介紹幾個常用的動作,如果還想了解其他型別的動作,可以參考
text/template 庫的檔案,
條件動作
格式一:
{{ if arg}} 要顯示的內容 {{ end }}
格式二:
{{ if arg}} 要顯示的內容 {{else}} 當 if 條件不滿足時要顯示的內容 {{ end }}
其中的 arg 是傳遞給條件動作的引數,該值可以是一個字串常量、
一個變數、一個回傳單個值的函式獲取方法等,
例如
模板檔案
<html>
<head>
<title>模板檔案</title>
<meta charset="utf-8" />
</head>
<body>
<!-- 嵌入動作 -->
{{if .}} 你已經成年了! {{else}} 你還未成年 {{end}}
</body>
</html>
處理器端代碼
func handler(w http.ResponseWriter, r *http.Request) {
//決議模板檔案
t := template.Must(template.ParseFiles("hello.html"))
//宣告一個變數
age := 16
//執行模板
t.Execute(w, age > 18)
}
瀏覽器中的結果
你還未成年
迭代動作
迭代動作可以對陣列、切片、映射或者通道進行迭代,
格式一:
{{range . }} 遍歷到的元素是 {{ . }} {{ end }}
格式二:
{{range . }} 遍歷到的元素是 {{ . }} {{ else }} 沒有任何元素 {{ end }}
range 后面的點代表被遍歷的元素;要顯示的內容里面的點代表遍歷
到的元素
例如:
模板檔案
<html>
<head>
<title>模板檔案</title>
<meta charset="utf-8" />
</head>
<body>
<!-- 嵌入動作 -->
{{range .}}
<a href=https://www.cnblogs.com/ygjzs/p/"#">{{.}}
{{else}} 沒有遍歷到任何內容 {{end}}
