转到模板:一起使用嵌套结构的字段和{{range}}标签

转到模板:一起使用嵌套结构的字段和{{range}}标签,第1张

转到模板:一起使用嵌套结构的字段和{{range}}标签

您无法到达那样的

NestedStructID
字段,因为该
{{range}}
*** 作将
.
每次迭代中的流水线(点)设置为当前元素。

您可以使用

$
设置为传递给数据参数
Template.Execute()
;因此,如果您传递的值
NestedStruct
,则可以使用
$.NestedStructID

例如:

func main() {    t := template.Must(template.New("").Parse(x))    ns := NestedStruct{        NestedStructID: "nsid",        Foos: []Foo{ {"f1-1", "f2-1"}, {"f1-2", "f2-2"},        },    }    fmt.Println(t.Execute(os.Stdout, ns))}const x = `{{range .Foos}}{ source: '{{.Field1}}', target: '{{$.NestedStructID}}' }{{end}}`

输出(在Go Playground上尝试):

{ source: 'f1-1', target: 'nsid' }{ source: 'f1-2', target: 'nsid' }<nil>

记录在

text/template

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5427914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存