如何通过模板中的索引获取字段?

时间:2016-11-25 06:28:48

标签: go go-templates

我将一片articles发送到模板中。每个article结构都像:

type Article struct {
    ID        uint32        `db:"id" bson:"id,omitempty"` 
    Content   string        `db:"content" bson:"content"`
    Author    string        `db:"author" bson:"author"`
    ... 
}

我可以在articles中循环{{range $n := articles}}切片并获取每个{{$n.Content}}但我想要的只是在标题中使用第一个(在范围循环之外)。 我试过的是:

{{index .articles.Content 0}}

但我明白了:

  

模板文件错误:template:articles_list.tmpl:14:33:执行   < .articles.Content>中的“content”:无法评估字段内容类型   interface {}

如果我只是调用

{{index .articles 0}}

它显示了整篇文章[0]对象。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

index函数访问指定数组的第n个元素,所以写

{{ index .articles.Content 0 }}

本质上是在尝试编写articles.Content[0]

你会想要类似于

的东西

{{ with $n := index .articles 0 }}{{ $n.Content }}{{ end }}

答案 1 :(得分:1)

一种更简洁的方法是:

"permissions": [
 "webRequest",
 "webRequestBlocking",
 "*://*.merchantos.com/*",
 "*://*.mywebsite.coom/*/,
 ]

相当于{{(index .articles.Content 0).Content }}