【发布时间】:2015-05-04 14:50:38
【问题描述】:
我正在尝试定义代码块,如果它们被定义,它们将被注入到基本模板中。我不想将一个页面上需要的所有脚本都包含到另一个不需要它的页面上。
我正在使用:
"github.com/go-martini/martini"
"github.com/martini-contrib/binding"
"github.com/martini-contrib/render"
基本上我想做的是:
关于布局:admin.tmpl:
<script src="jquery.min.js"></script>
<script src="scripts.min.js"></script>
{{ footer_extra }}
在new.tmpl:
{{define "footer_extra"}}
<!-- scripts just for this page -->
<script src="script-1.js"></script>
<script src="script-2.js"></script>
<script src="script-3.js"></script>
{{end}}
当我改用模板时,它似乎工作了。
但我注意到我不能定义多个模板,这有点违背了我想要实现的目标。
index.tmpl
{{define "footer_extra"}}
<!-- scripts just for this page -->
<script src="script-1.js"></script>
<script src="script-2.js"></script>
{{end}}
new.tmpl
{{define "footer_extra"}}
<!-- scripts just for this page -->
<script src="script-3.js"></script>
<script src="script-4.js"></script>
{{end}}
layout.tmpl
<script src="main.js"></script>
{{template "footer_extra"}}
会抛出一个PANIC
template: redefinition of template "footer_extra"
【问题讨论】:
-
请在代码中显示您访问模板的位置
-
见这里 - elithrar.github.io/article/… - 你可以在你的模板中定义“可选”块,方法是在你的基本内容中使用``{{ define XXX }}` 它们,但不要让它们为空。