转到模板将数据从一个传递到另一个

时间:2015-08-04 04:42:23

标签: go go-templates

我必须去模板文件。我需要将一些值从一个模板传递到另一个模板。 IE

模板A有两个带.Name和.Type的变量。这些值是从带有ctx.Data的go代码传递的。模板A使用

引用模板B.
{{ template "B" . }}

但是在模板B. .Name和.Type中没有相同的名称。我无法更改模板B的变量引用,因为Tempalte B直接与这些变量一起使用。 模板B看起来像这样。

Username : {{ .UserName }}
Type : {{ .UserType }}

现在我的问题是如何将模板A中的.Name更改为.UserName?

{{ tempalte "B" .Name as .UserName }}

有这样的东西????

1 个答案:

答案 0 :(得分:1)

不幸的是,对于Go的文本/模板或html /模板包的当前版本,这是不可能的。

您需要在Go端将“Name”和“UserName”附加到ctx.Data,以便可以使用模板B中的确切名称访问它们。

您可能需要查看pongo2,一个类似Django的Go模板(https://github.com/flosch/pongo2

pongo2中的具体用例在此处记录:https://github.com/flosch/pongo2/blob/master/template_tests/includes.tpl