Templates golang模板。执行和结构嵌入
我有一个小网站项目,写着去哪里可以存储链接,我遇到了一个问题: 该网站有许多不同的页面,显示不同的信息,因此您需要传递模板。执行不同类型的结构。但每个页面还需要用户名和标签等信息,这些信息显示在侧边栏中。我试着这样做,而不是为每个页面创建一个全新的结构类型 但在执行模板时出错:Templates golang模板。执行和结构嵌入,templates,go,Templates,Go,我有一个小网站项目,写着去哪里可以存储链接,我遇到了一个问题: 该网站有许多不同的页面,显示不同的信息,因此您需要传递模板。执行不同类型的结构。但每个页面还需要用户名和标签等信息,这些信息显示在侧边栏中。我试着这样做,而不是为每个页面创建一个全新的结构类型 但在执行模板时出错:“fp.tmpl”at:无法计算main.Page类型中的字段链接 模板中发生错误的部分: {{with .Page}} {{range .Links}} <tr> <td>{
“fp.tmpl”at:无法计算main.Page类型中的字段链接
模板中发生错误的部分:
{{with .Page}}
{{range .Links}}
<tr>
<td>{{if .IsImage}}<img src="{{.Url}}" />{{end}}</td>
<td>{{.Name}}</td>
<td>{{.Url}}</td>
<td>{{.TagsString}}</td>
</tr>
{{end}}
{{end}}
{{with.Page}
{{range.Links}
{{if.IsImage}{{end}
{{.Name}
{{.Url}
{{.TagsString}
{{end}
{{end}
而且{.Name}
不起作用。(这是从GeneralPage嵌入的函数)您正在嵌入页面界面,但您需要的是GeneralPage。也许您可以使用map[string]接口{}来存储数据(然后在模板中检查是否为nil),这会更容易。
但您可以共享主布局,只需更改细节(如母版页)。
看看我已经有了
{{template'START'}}
和{template'END'}
,但是templateSTART
需要显示用户名等信息,所以每个页面都需要,所以我有PageRoot
结构,其中包含每个页面都需要的字段,还有页面字段,其中包含页面特定的字段,其中嵌入了Name
(返回标题栏中显示的页面名称)的位置。哦,我可以通过将字段从PageRoot
移动到GeneralPage
中来摆脱PageRoot
。看起来我的'START'
无法访问传递到模板的数据。Execute方法。我怎么能允许呢?{{template“START”}也需要使用该数据的代码,{{{}{{template“END”}
{template“START”}}见点。下次请在发布前删除任何不相关的内容,以及在本主题中不相关的内容?
{{with .Page}}
{{range .Links}}
<tr>
<td>{{if .IsImage}}<img src="{{.Url}}" />{{end}}</td>
<td>{{.Name}}</td>
<td>{{.Url}}</td>
<td>{{.TagsString}}</td>
</tr>
{{end}}
{{end}}