bson.ObjectId в шаблоне
У меня есть структура с типом 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 ответа
Призвание id.Hex()
вернет строковое представление bson.ObjectId
,
Это также поведение по умолчанию, если вы пытаетесь маршалировать один bson.ObjectId
в строку json.
Тип bson.ObjectId предлагает метод Hex, который будет возвращать искомое шестнадцатеричное представление, а пакет шаблонов позволяет вызывать произвольные методы для значений, которые у вас есть, поэтому нет необходимости хранить это значение в двух местах в другом месте, так как строка.
Это будет работать, например:
<a href="/remove/{{ .Id.Hex }}">Remove me</a>
Вещи, как работать площадка Просто определите точку .
для вашего шаблона
{{ .Name }} {{ .Food }}
<a href="/remove/{{ .Id }}">Remove me</a>