2 回答
TA贡献1911条经验 获得超7个赞
我认为您尝试使用嵌套模板的方法是错误的。如果你想.在嵌套模板中定义,你必须为嵌套模板的调用提供一个参数,就像你对ExecuteTemplate函数所做的一样:
{{define "RT"}}
Status - {{.Status}}
Proto - {{.Proto}}
{{end}}
{{define "HT"}}
{{range $key, $val := .}}
{{$key}} - {{$val}}
{{end}}
{{end}}
{{define "BT"}}
{{.}}
{{end}}
{{define "MT"}}
<html>
<body>
<pre>
-- Response --
{{template "RT" .Resp}}
-- Header --
{{template "HT" .Header}}
-- Body --
{{template "BT" .Body}}
</pre>
</body>
</html>
{{end}}
{{template "MT"}}
您似乎错过的重要部分是模板不封装状态。当您执行模板时,引擎会评估给定参数的模板,然后写出生成的文本。它不会保存参数或为将来调用而生成的任何内容。
文档
文档的相关部分:
行动
这是操作列表。“参数”和“管道”是对数据的评估,详细定义如下。
...
{{template "name"}}
The template with the specified name is executed with nil data.
{{template "name" pipeline}}
The template with the specified name is executed with dot set
to the value of the pipeline.
...
我希望这可以解决问题。
- 2 回答
- 0 关注
- 205 浏览
添加回答
举报