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作为后缀也是可以的。

上一篇 下一篇

猜你喜欢

热点阅读