模板的{{range}}Go语法里面的range类似,循环操作数据。 跟第一章一样,先定义路由和对应的处理函数,不同的是就是创建模板的步骤,因为模板里如果要注入函数,必须在在调用ParseFiles函数前注入函数,否则会报模板错误。

func Number(number int) int {
    return number + 1
}
funcMap := template.FuncMap{"number": Number}
t := template.New("index.html").Funcs(funcMap)
t = template.Must(t.ParseFiles("./template/index.html"))

Must函数的作用是检测模板是否正确。

代码里我使用的是结构体切片,定义结构体的时候要注意,如果要在模板使用,变量名首字母一定要大写,注入函数也是一样,否则模板里不能正常使用。

type Student struct {
    Name string
    Street string
}

相关源码已发布在 github