我目前正在使用Go创建一个Web应用程序。我希望在用户登录时知道我的模板,我现在正在使用这种方法
response := &viewCharacter{true}
template.Renderer.ExecuteTemplate(w, "character_search.html", response)
如您所见,我传递的viewCharacter结构只包含一个bool Logged然后在模板上我可以执行以下操作
{{ if .Logged }}
还有其他办法吗?而不是在每个模板上传递一个记录的bool?
也许为http处理程序的每个goroutine设置一个变量,如果用户是否被记录,该变量会保存?
答案 0 :(得分:0)
我知道在go代码和模板之间只有两种方式进行通信。
第一个是你使用的那个。通过将结构传递给ExecuteTemplate函数,您可以访问模板中的所有字段。
第二个是使用以下方式注册其他功能:
func (t *Template) Funcs(funcMap FuncMap) *Template
见documentation for more information。 funcMap是一个简单的map [string] interface {},你可以注册任何函数,并使用它的名字(地图的键)在模板中调用它。