如何通过模板中的索引获取字段?
How to get a field by index in template?
我将 articles
的一部分发送到模板中。每个 article
结构如下:
type Article struct {
ID uint32 `db:"id" bson:"id,omitempty"`
Content string `db:"content" bson:"content"`
Author string `db:"author" bson:"author"`
...
}
我可以遍历 {{range $n := articles}}
中的 articles
切片并获取每个 {{$n.Content}}
但我想要的是只有第一个(在范围循环之外)用于标题。
我尝试的是:
{{index .articles.Content 0}}
但我得到:
Template File Error: template: articles_list.tmpl:14:33: executing
"content" at <.articles.Content>: can't evaluate field Content in type
interface {}
如果我只是调用
{{index .articles 0}}
显示整篇文章[0] object.
我该如何解决这个问题?
索引函数访问指定数组的第n个元素,所以写作
{{ index .articles.Content 0 }}
本质上是在尝试写articles.Content[0]
你会想要类似于
的东西
{{ with $n := index .articles 0 }}{{ $n.Content }}{{ end }}
更简洁的方式是:
{{(index .articles.Content 0).Content }}
这相当于 articles[0].Content
。
我将 articles
的一部分发送到模板中。每个 article
结构如下:
type Article struct {
ID uint32 `db:"id" bson:"id,omitempty"`
Content string `db:"content" bson:"content"`
Author string `db:"author" bson:"author"`
...
}
我可以遍历 {{range $n := articles}}
中的 articles
切片并获取每个 {{$n.Content}}
但我想要的是只有第一个(在范围循环之外)用于标题。
我尝试的是:
{{index .articles.Content 0}}
但我得到:
Template File Error: template: articles_list.tmpl:14:33: executing "content" at <.articles.Content>: can't evaluate field Content in type interface {}
如果我只是调用
{{index .articles 0}}
显示整篇文章[0] object.
我该如何解决这个问题?
索引函数访问指定数组的第n个元素,所以写作
{{ index .articles.Content 0 }}
本质上是在尝试写articles.Content[0]
你会想要类似于
的东西{{ with $n := index .articles 0 }}{{ $n.Content }}{{ end }}
更简洁的方式是:
{{(index .articles.Content 0).Content }}
这相当于 articles[0].Content
。