如何在模板范围内访问会话变量?

时间:2016-12-01 04:01:03

标签: go

我想添加Edit按钮,该按钮仅供主持人使用:

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

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

  

执行&#34;内容&#34;在&lt; .is_mod&gt;:is_mod不是结构类型的字段   model.Article。

一个显而易见的解决方案是在控制器中创建一个包含IsMod字段的新结构并将其传递给模板,但这样很麻烦且效率低下,所以我宁愿在可能的情况下避免使用它并寻找一个更优雅的解决方案。

1 个答案:

答案 0 :(得分:0)

您需要将会话变量传递给模板。我没有尝试过,但你可以尝试这样的事情:

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

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