我是否可以在模板文件{{$title := "Login"}}
中设置变量,然后将其解析为使用{{template "header" .}}
包含的其他文件?
我正在尝试的一个例子:
header.tmpl
{{define "header"}}
<title>{{.title}}</title>
{{end}}
login.tmpl
{{define "login"}}
<html>
<head>
{{$title := "Login"}}
{{template "header" .}}
</head>
<body>
Login Body!
</body>
</html>
{{end}}
如何解析我通过标题模板制作的自定义$ title变量?
答案 0 :(得分:1)
不,它是不可能的解析变量到另一个文件。
根据this:
变量的范围扩展到&#34; end&#34;控制结构的动作(&#34;如果&#34;,&#34;用&#34;或&#34;范围&#34;)声明它,或者如果有的话,到模板的末尾没有这样的控制结构。 模板调用不会从调用点继承变量。
答案 1 :(得分:1)
正如@zzn所说,不可能从一个不同的模板中引用一个变量。
实现目标的一种方法是定义一个模板 - 从一个模板传递到另一个模板。
<强> header.html中强>
{{define "header"}}
<title>{{template "title"}}</title>
{{end}}
<强>的login.html 强>
{{define "title"}}Login{{end}}
{{define "login"}}
<html>
<head>
{{template "header" .}}
</head>
<body>
Login Body!
</body>
</html>
{{end}}
当您调用“标题”模板({{template header $title}}
或甚至{{template header "index"}}
)时,您也可以将标题作为管道传递,但这会阻止您将任何其他内容传递给该模板。< / p>