clq
浏览(464) -
2017-11-06 20:30:34 发表
编辑
关键字: golang
关键是最后的那个 "." 很是重要.
--------------------------------------------------
关于GoLang嵌套模板和数据的问题
由 Clounea 在 2015-03-08 22:40 发布 4791 次点击
GoLang本身的嵌套模板机制感觉非常爽,但是有一个问题就是与数据结合的时候,数据只能与选择结合的那层数据结合、渲染……也就是说被嵌套的模板没办法获得数据…… 譬如A模板包含了B、C、D模板,三个模板都是不完整的、需要复用的,也都需要传入数据。然而executetemplate(w,A,data)却只能让data和A结合渲染,B、C、D没办法拿到数据…… 我刚学GoLang也对整体不是很理解,于是问题来了,该如何将被嵌套的模板与传入的上下文数据结合渲染? (啊为什么Go渲染一定要输出呢,不能传一个渲染好的对象么)
8 回复
snake117
#1 snake117 • 2015-03-08 23:59
没看懂你的意思,我咋觉得go的模板完全可以满足要求呢?
一次只能渲染一个模板,也只提供一个数据,如果模板内部嵌套了模板,那你提供的数据就应包含提供给嵌套模板的数据,内部嵌套模板完全可以从上一层模板获取数据的啊?
David
#2 David • 2015-03-09 00:59
渲染的结果都写到w里了(变成bytes)你可以拿过来继续搞的呀
seefan
#3 seefan • 2015-03-09 09:13
被嵌套的模板是可以得到数据变量的,只是你用法不对
{{include "file.html" datacontext}}
datacontext 就是你要传入的数据上下文,如果要全部传入,只要传入一个点就可以
{{include "file.html" .}}
gman
#4 gman • 2015-03-09 09:32
楼上的正解
Clounea
#5 Clounea • 2015-03-09 19:49
谢谢三楼,我刚接触确实不太会搞,还不怎么懂这个模板的语法、类C表达式之类的……OTL……去翻Doc也有很多不懂……可以的话能指引一下在哪里、怎么查这些用法么……
Clounea
#6 Clounea • 2015-03-09 20:04
{{template "B" .}}成功,感觉好像函数,多谢大家哈哈哈
netuml
#7 netuml • 2016-04-16 14:52
解决了我的问题
zhangfei_jiayou
#8 zhangfei_jiayou • 2016-11-20 19:29
{{template “B” .}}就是后面的“.” 解决了我问题,翻阅了多少书,都只是{{template “B”}}这样类似的描述,哎。。。
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.