我可以在 Golang 的另一个模板中使用模板变量吗?

模板 1


{{define "one"}}

  {{ $var := "Hello"}}

{{end}}

模板 2


{{define "two"}}

  {{template "one"}}

  Say, {{print $var}}

{{end}}

我知道上面的例子是无效的。但是有没有办法将"one"模板的变量使用到"two"模板中?


慕仙森
浏览 156回答 1
1回答

MYYA

从阅读所有文档开始。答案似乎是否定的。当一个模板在嵌入到另一个模板之前执行时,该变量将消失,如果模板中使用了它的值,它会显示为静态文本。在模板一的例子中,$var没有在任何地方使用,所以它被扔掉了。执行的顺序是。加载两个模板。模板一被执行,扔掉$var,因为它没有被使用。执行模板二,将模板一的结果嵌入其中。如果这个解释是错误的。请评论或编辑它。但是我的问题的答案是标准模板库不会在模板之间传递模板变量。它们供本地使用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go