我有一个 struct 类型的主题:

type Topic struct {
Forum_id  int
Topic_id  int
Author    string
Title     string
Sub_Title string
Body      string
}

和一个Replay类型的切片:

type Replay struct {
Replay_ID int
Topic_ID  int
Author    string
Body      string
}

我需要将数据传递到模板中,如果只用一个变量传递它,我应该怎么做?然后,我应该如何在我的模板中访问它?

推荐答案

创建包装 struct 或使用映射.例如

type templateData struct {
  Topic Topic
  Replays []Replay
}

err := t.Execute(os.Stdout, templateData{topic, replays})

在您的模板中,您可以使用它们的字段名称来访问这两者.

{{ .Topic.Title }}
{{ range .Replays }}
{{ .Body }}
{{ end }} 

Go相关问答推荐

Go汇编器命名为Constants

调用API时使用nginx作为反向代理时从nginx获取502坏网关

禁用Golang中的终端

GoLang:无法发送带有附件的邮箱

为什么没有正确生成这些元组?

JWT 如何解析声明有效性和错误?

Prometheus 摘要分位数错误

Golang chromedp Dockerfile

将字符串格式的x509证书生成主题名称

为什么我只收到部分错误而不是我启动的 goroutines 的所有错误?

加载 docker 镜像失败

动态 SQL 集 Golang

如何在模板中传递和访问 struct 片段和 struct

未定义 protoc protoc-gen-go 时间戳

在 connect-go 拦截器中修改响应体

使用 delve 在容器中调试 Golang:container_linux.go:380:启动容器进程导致:exec:/dlv:stat /dlv:没有这样的文件或目录

Go:用于 XML 解码的嵌套 struct 中的提升字段

不能使用 *T 类型的变量作为参数类型

如何使用 httputil.ReverseProxy 设置 X-Forwarded-For

Gin中测试模式有什么用