Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates golang模板。执行和结构嵌入_Templates_Go - Fatal编程技术网

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'}
,但是template
START
需要显示用户名等信息,所以每个页面都需要,所以我有
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}}