【发布时间】:2014-08-05 16:06:00
【问题描述】:
所以我在那个尴尬的地方,我试图将上下文数据传递给模板,并且没有很多真正好的例子不涉及传递预先存在的结构。我想出的最好的方法如下:
templ.Execute(writer, map[string]interface{}{
"thingyA": ThingyA,
"thingyB": ThingyB,
})
使用上述内容,我可以使用{{ .thingyA.[PROPERTY] }} 在我的模板中引用ThingyA 及其所有属性和方法。所以这本身就很好,因为它允许我以简单的 Django 风格定义上下文,而无需使用匿名结构,这会有点笨拙。
但我想知道是否有某种方法可以定义一个新类型Context,以便我可以将上面的内容简化为以下内容:
templ.Execute(writer, Context{
"thingyA": ThingyA,
"thingyB": ThingyB,
})
也就是说,我想定义一个特定类型Context,它始终具有map[string]interface{} 的形式,并且可以以与映射相同的方式进行初始化。关于如何解决这个问题的任何想法?
【问题讨论】:
标签: templates go datacontext custom-type