3

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

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

{{ template "B" . }}

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

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

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

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

有这样的吗???

4

1 回答 1

1

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

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

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

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

于 2015-08-04T05:35:03.427 回答