When inside a with
or range
, the scope of .
is changed. How do you access the calling scope?
In a template how do you access an outer scope while inside of a "with" or "range" scope?
Asked Answered
{{with .Inner}}
Outer: {{$.OuterValue}}
Inner: {{.InnerValue}}
{{end}}
$
is documented in the text/template docs:
When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot.
You can save the calling scope with a variable:
{{ $save := . }}
{{ with .Inner }}
Outer: {{ $save.OuterValue }}
Inner: {{ .InnerValue }}
{{ end }}
© 2022 - 2024 — McMap. All rights reserved.