go - 如何访问模板范围内的 session 变量?

标签 go

我想添加一个仅对版主显示的编辑按钮:

{{range $n := .articles}}
   <p>{{$n.Content}} </p>
   {{ if .is_mod}}
      <button> Edit </button>
   {{end}}
{{end }}

我已经在 session 中将 is_mod 设置为 bool 变量并将其传递给模板。但是,它不是 Article 结构中的一个字段,因此,我收到此错误:

executing "content" at <.is_mod>: is_mod is not a field of struct type model.Article.

一个明显的解决方案是在 Controller 中创建一个包含 IsMod 字段的新结构并将其传递给模板,但这是困惑且低效的,所以我宁愿尽可能避免它并寻找以获得更优雅的解决方案。

最佳答案

您需要将 session 变量传递给模板。我没试过,但你可以试试这样的方法:

c.HMTL(http.StatusOK, "template_name", gin.H {
  "articles": articles,
  "is_mod": is_mod,
})

以上语法适用于gin-gonic/gin 框架。 .

关于go - 如何访问模板范围内的 session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40902421/

相关文章:

go - 用反射调用struct方法

postgresql - Golang + postgres 存储gob数据

linux - 在 fsnotify 上递归地重新生成文件删除/重命名 (Golang)

go - Go中的int和int64有什么区别?

java - Google App Engine Go-Python/Java 混合应用

go - 如何使用Golang在远程机器上调试Go代码?

vim - 使用 'go fmt' 工具正常运行的 Vim 进行注释

go - 如何在多个包之间共享单个数据库连接

http - 在golang中,如何确定一系列重定向后的最终URL?

mongodb - 如何修复 : Golang "append" method pushing same elements to slice