93.模板详细使用(五)模板嵌套模板
2023-07-06 本文已影响0人
厚土火焱
当多个页面有很多重复的展示区域的时候,我们必然会想到“复用”。在界面上,自然会想到模板嵌套另一个模板,从而达到复用的目的。
比如,页面的底部,在一个系统中,可能几十或者上百个页面,底部都是完全一样的。这个时候就非常适合使用模板嵌套来实现了。
首先,我们要记住一个要点,模板嵌套的时候,是需要在加载模板的go代码中,完整写下所有模板文件的路径和文件的。就像这样。
files, err := template.New("cofox").ParseFiles("./a.html", "./footer.html")
a模板是主模板,footer模板是子模板。
然后就是模板之间的关联了。
我们把它们建立为继承关系。
template继承
{{block "name" .}}{{end}}
在主模板中,嵌入调用子模板的代码。主模板将把子模板中要显示的内容全部显示在主模板。
主模板 a.html
<html>
<body>
...
{{block "footer" .}}{{end}}
</body>
</html>
子模板 footer.html
{{template "a.html"}}
{{define "footer"}}
<p class="mb-0">{{.PageFooter}}</p>
{{end}}
注意2个模板文件中的“footer”,是建立模板正确关联的关键。而子模板中的第一行代码,是继承主模板的声明语句。
至此,go代码加载a模板的时候,只要同时给PageFooter赋值了,那么页面上将会使用子模板的样式在主模板页面显示出来。
注意
模板文件的后缀,常规会写成tmpl,而在实际应用中,使用html作为后缀也是可以的。