创建Go模板时,您可以为其命名,例如“my_home_template”:
this.props.resetTaskBatch({
tasks: threeSampleTasks,
busy: true
}).then(() => {
this.performTasks();
});
如何获取该模板名称并在实际模板文件中使用它?
最终我只想定义一个方便的css类,如下所示:
var tmplHome = template.Must(template.New("my_home_template").Funcs(funcMap).ParseFiles("templates/base.tmpl", "templates/content_home.tmpl"))
答案 0 :(得分:0)
这是一个有效的解决方案,采取mkopriva的建议:
执行模板时,使用虚拟数据传递一些自定义参数。在这里,我只是创建一个" PageHome"传递给模板的参数,值是一个简单的" 1",但它可以是任何值:
tmplHome.ExecuteTemplate(w, "base", map[string]interface{}{"PageHome": "1", "Data": events, "UserFirstName": &u.FirstName, "UserProfilePic": &u.ProfilePic})
然后,在模板本身内部,使用一个简单的if语句来检查参数是否存在,并做相应的事情:
{{ if .PageHome }}
<body class="PageHome">
{{ else }}
<body>
{{ end }}
我所有其他模板执行都没有通过&#34; PageHome&#34;参数,所以if语句永远不会为它们传递真实。
这可能是一个更先进的解决方案,它通过模板功能图使用功能,并且具有一致的&#34; PageType&#34;:&#34;&#34;&#34;&#34;所有模板执行中的参数,但最终你仍然需要为每个模板执行定义一个参数,并且仍然必须在模板中构建if语句。