我正在尝试访问双父上下文中的变量。我的代码是:
dot
为ColumnBlock
// template content
<h4>{{.Global}}</h4> // he is fine
...
<div class="row">
<div class="col-12">{{template "column" .LeftColumn}}</div>
<div class="col-12">{{template "column" .RightColumn}}</div>
</div>
// template column
{{range .Columns}}
<div id="x-{{$.Kind}}-{{.ID}}">{{.Text}} - {{$.Global}}</div> // here Global is unavailable.
{{end}}
转到:
type Column struct {
ID int
Text string
}
type ColumnList struct {
Kind string
Columns []Column
}
type ColumnBlock struct {
Global bool
LeftColumn ColumnList
RightColumn ColumnList
}
如何从column template
访问.Global
变量
示例:PLAYGROUND
发布于 2018-06-05 03:57:58
来自https://golang.org/pkg/text/template/#hdr-Variables
模板调用不会从其调用点继承变量。
但是,您可以通过注册函数来模拟全局变量。
t := template.Must(template.New("main").
Funcs(template.FuncMap{
"Global": func() string {return "true"},
}).
Parse(`...`))
然后,在您的模板代码中,只要需要访问“全局”值,就可以使用{{Global}}
。
https://stackoverflow.com/questions/50686566
复制相似问题