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
我必须转到模板文件。我需要将一些值从一个模板传递到另一个模板。浏览器
模板 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