模板中的bson.ObjectId

时间:2015-02-01 11:54:00

标签: html templates go

我有一个带有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时,我是否必须这样做?

3 个答案:

答案 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>