在Go模板中,有时将正确的数据传递给正确的模板的方式让我感到尴尬.使用管道参数调用模板就像只使用一个参数调用函数.
假设我有一个关于地鼠的地鼠网站.它有一个主页主模板和一个实用程序模板来打印地鼠列表.
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",因为它是当前登录用户的名称.但是我不能直接传递名称,因为有only one个可能的"点"参数管道!我能做什么?
- 显然,我可以将子模板代码复制粘贴到主模板中(我不想这样做,因为这会丢弃拥有子模板的所有兴趣).
- 或者,我可以使用访问器来处理某种全局变量(我也不想这样做).
- 或者,我可以 for each 模板参数列表创建一个新的特定 struct 类型(不是很好).