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

Go template Passing data from one to another

我必须转到模板文件。我需要将一些值从一个模板传递到另一个模板。浏览器

模板 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 }}

有这样的东西吗????

不幸的是,当前版本的 Go 的 text/template 或 html/template 包无法做到这一点。

您需要在 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