在 Go 模板中,有时将正确的数据传递给正确的模板的方式让我觉得很尴尬。使用管道参数调用模板看起来就像调用只有一个参数的函数。
假设我有一个关于 Gophers 的 Gophers 网站。它有一个主页主模板和一个用于打印 Gophers 列表的实用程序模板。
http://play.golang.org/p/Jivy_WPh16
输出 :
*The great GopherBook* (logged in as Dewey)
[Most popular]
>> Huey
>> Dewey
>> Louie
[Most active]
>> Huey
>> Louie
[Most recent]
>> Louie
现在我想在子模板中添加一些上下文:在列表中以不同的方式格式化名称“Dewey”,因为它是当前登录用户的名称。但是我不能直接传递名称,因为只有一个可能的“点”参数管道!我能做什么?
显然,我可以将子模板代码复制粘贴到主模板中(我不想这样做,因为它放弃了拥有子模板的所有兴趣)。
或者我可以处理某种带有访问器的全局变量(我也不想)。
或者我可以为每个模板参数列表创建一个新的特定结构类型(不太好)
相关分类