go语言:优雅的模板切割技术
众所周知,一个网页普遍由头、身、脚组成,而一个项目中头和脚基本相同,这些部分就需要提取出来。
比如:
<html> <head> ... </head> <body> ... </body> ... </html>
分割的时候就会分成这样:
头:
<html> <head> ... </head> <body>
身:
...
脚:
</body> ... </html>
然后就可以通过三次调用func (*Template) Execute这个方法来渲染模板了!
可是本人有个强迫症,看到<html></html>和<body></body>被分到了两个文件中十分不爽,所以想了下面这个方法:
main.html:
{{define "main"}} <html> <head> ... </head> <body> {{template "content" .}} </body> ... </html> {{end}}
index.html:
{{template "main" .}} {{define "content"}} ... {{end}}
然后使用 func ParseFiles(filenames ...string) (*Template, error) 这个方法同时传入上面两个文件名,调用一次 func (*Template) Execute 就可以达成目标了。注意两个文件{{template xxx .}}有一个点,否则数据传不进去!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。