我有一个带有bson.ObjectId类型的结构,例如:
type Test struct {
Id bson.ObjectId
Name string
Foo string
}
我想在html模板中呈现这个
{{ Name }} {{ Food }}
<a href="/remove/{{ Id }}">Remove me</a>
但是这显然不起作用,因为{{ Id }}
只返回一个ObjectId类型,有没有办法将其转换为模板内的字符串?
或者,当我将数据传递给template.Execute
时,我是否必须这样做?
答案 0 :(得分:3)
bson.ObjectId类型提供了一个Hex方法,它将返回您要查找的十六进制表示形式,template包允许您调用您手头的值的任意方法,因此,不需要将该值作为字符串存储在其他任何地方。
这可行,例如:
<a href="/remove/{{ .Id.Hex }}">Remove me</a>
答案 1 :(得分:1)
调用id.Hex()
将返回bson.ObjectId
。
如果您尝试将一个bson.ObjectId
封送到json字符串,这也是默认行为。
答案 2 :(得分:0)
喜欢工作的事playground
只需为模板定义点.
{{ .Name }} {{ .Food }}
<a href="/remove/{{ .Id }}">Remove me</a>