54

在 a withor内range时,范围.会改变。你如何访问调用范围?

4

2 回答 2

75
{{with .Inner}}
  Outer: {{$.OuterValue}}
  Inner: {{.InnerValue}}
{{end}}

$记录在文本/模板文档中:

开始执行时,$ 设置为传递给 Execute 的数据参数,即设置为 dot 的起始值。

于 2013-02-10T22:21:31.930 回答
29

您可以使用变量保存调用范围:

{{ $save := . }}
{{ with .Inner }}
  Outer: {{ $save.OuterValue }}
  Inner: {{ .InnerValue }}
{{ end }}
于 2013-02-10T17:03:47.177 回答