【问题标题】:How to access session variable inside a template range?如何访问模板范围内的会话变量?
【发布时间】:2016-12-01 04:01:02
【问题描述】:

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

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

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

在 <.is_mod> 处执行“内容”:is_mod 不是结构类型的字段 模型.文章。

一个明显的解决方案是在控制器中创建一个新结构,其中包含一个 IsMod 字段并将其传递给模板,但这很混乱且效率低下,所以我宁愿尽可能避免它并寻找更优雅的解决方案.

【问题讨论】:

    标签: go


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-06-10
      • 2017-03-16
      • 1970-01-01
      • 2011-02-02
      • 2012-10-25
      • 1970-01-01
      • 2015-11-23
      相关资源
      最近更新 更多