In a template how do you access an outer scope while inside of a "with" or "range" scope?

Randy Proctor picture Randy Proctor · Feb 10, 2013 · Viewed 10.8k times · Source

When inside a with or range, the scope of . is changed. How do you access the calling scope?

Answer

Testuser picture Testuser · Feb 10, 2013
{{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.