我有两个结构如下,我需要使用templates包在模板上呈现数据。我收到此错误
<.Email>: Email is not a field of struct type Notes
。
问题似乎是只有范围结构的字段似乎在范围循环中可用,所以我想知道如何从范围结构外部导入字段(例如电子邮件字符串)。
这种行为非常意外。
type notes struct{
Note string
sf string
}
type uis struct{
notes []Note
Email string
}
var ui uis
HTML
{{range .notes}}
{{.Email}} {{.sf}}
{{end}}
Email {{.Email}}
我检查过godocs但它们似乎没用。
答案 0 :(得分:15)
来自文档:
执行开始时,$设置为传递给Execute的数据参数,即dot的起始值。
因此,你可以使用它:
{{range .notes}}
{{$.Email}} {{.sf}}
{{end}}
Email {{.Email}}
(注意范围内的美元符号)
游乐场链接:http://play.golang.org/p/XiQFcGJEyR
旁注:下次尝试提供正确的代码和更好的解释。按照目前的情况,我想我已经回答了这个问题,但我不能确定。您的代码无法编译 - 例如,类型名称错误/与成员混合,您有未导出的字段,因此模板无法访问它们。