當我在{{ 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" $ }}
...
- 1 回答
- 0 關注
- 135 瀏覽
添加回答
舉報
0/150
提交
取消