为了账号安全,请及时绑定邮箱和手机立即绑定

从 Go 模板的循环中调用子模板

从 Go 模板的循环中调用子模板

Go
慕丝7291255 2022-10-10 09:58:23
当我在{{ range }}循环外导入子模板时,变量在导入的模板中成功传递:... {{ template "userdata" . }}...(在这里,我可以在内部模板中访问我的外部模板变量userdata)。到目前为止,一切都很好。{{ range }}但是,在循环中调用时,相同的时尚导入不起作用:...{{ range $instance := .Instances }}- type: instance  metadata:    userdata: {{ template "userdata" . }}...以上以错误消息结束,例如:Error: template: template.tmpl:3:46: executing "userdata" at <XXX>: can't evaluate field XXX in type int`据我了解,它用循环迭代器变量遮蔽了我的上下文变量,因此它不起作用。我应该如何正确地做到这一点?.在范围循环内时,如何将范围循环外的值传递给模板“userdata”?
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

将 的值赋给.一个变量。在循环中使用变量:


...

{{$x := .}}

{{ range $instance := .Instances }}

- type: instance

  metadata:

    userdata: {{ template "userdata" $x }}

...

如果.是模板中的根值,则用于$引用该值:


...

{{ range $instance := .Instances }}

- type: instance

  metadata:

    userdata: {{ template "userdata" $ }}

...


查看完整回答
反对 回复 2022-10-10
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信