當我在{{ 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”?
uj5u.com熱心網友回復:
將 的值分配.給變數。在回圈中使用變數:
...
{{$x := .}}
{{ range $instance := .Instances }}
- type: instance
metadata:
userdata: {{ template "userdata" $x }}
...
如果.是模板中的根值,則使用$來參考該值:
...
{{ range $instance := .Instances }}
- type: instance
metadata:
userdata: {{ template "userdata" $ }}
...
在操場上運行它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/328236.html
下一篇:在C 中模板化亂數生成器
