goroutines的变量

时间:2016-05-21 17:06:39

标签: go

我目前正在使用Go创建一个Web应用程序。我希望在用户登录时知道我的模板,我现在正在使用这种方法

response := &viewCharacter{true}
template.Renderer.ExecuteTemplate(w, "character_search.html", response)

如您所见,我传递的viewCharacter结构只包含一个bool Logged然后在模板上我可以执行以下操作

{{ if .Logged }}

还有其他办法吗?而不是在每个模板上传递一个记录的bool?

也许为http处理程序的每个goroutine设置一个变量,如果用户是否被记录,该变量会保存?

1 个答案:

答案 0 :(得分:0)

我知道在go代码和模板之间只有两种方式进行通信。

第一个是你使用的那个。通过将结构传递给ExecuteTemplate函数,您可以访问模板中的所有字段。

第二个是使用以下方式注册其他功能:

func (t *Template) Funcs(funcMap FuncMap) *Template

documentation for more information。 funcMap是一个简单的map [string] interface {},你可以注册任何函数,并使用它的名字(地图的键)在模板中调用它。