我是golang代码的新手以及杜松子酒gonic.使用杜松子酒时,我遇到了问题.
在我的控制器中.我得到所有文章并通过代码渲染到html文件.
c.HTML(http.StatusOK, "articles/list", gin.H{
    "title":    "Articles",
    "articles": articles,
})
和文章有字段"CreatedOn"类型int64(创建日期)所以在我的视图list.html中,我如何解析CreateOn类型int64到日期格式.
<div class="list-group">
  {{ range $article := $articles }}
    <a href="/articles/{{ $article.Id }}" class="list-group-item">
      <h4 class="list-group-item-heading">{{ $article.Title }}</h4>
      <p class="list-group-item-text">{{ $article.Body }}</p>
      <p class="list-group-item-text">{{ $article.CreatedOn  }}</p>
      <p class="list-group-item-text"></p>
    </a>
  {{ end }}
  </div>
谢谢大家
我找到了一种编写方法FormatDate()的方法
func (a *Article) FormatDate(ab int64) string {
    return "test Time"
}
在模型"文章".然后在我看来我打电话
  <p class="list-group-item-text">{{ .FormatDate article.CreatedOn  }}</p>
还要别的吗????
TL;DR使用 SetHTMLTemplate
查看Gin 文档,您可以使用自己的模板引擎。
通过调用r.SetHTMLTemplate(tmpl)
Gin本身使用 golang 内置 html/template 标准包。
您可以使用相同的引擎并添加用户定义的函数。
使用 template.FuncMap 创建函数:
funcMap := template.FuncMap{
    "formatTime": func(raw int64) string {
        t := time.Unix(raw, 0)
        return t.Format("Jan 2 15:04:05 2006")
    },
}
实例化模板:
tmpl := template.Must(template.New("main").Funcs(funcMap).ParseGlob("templates/**/*"))
注册新模板:
r := gin.Default()
r.SetHTMLTemplate(tmpl)
如果您对不同端点使用相同的模板名称,请指定名称:
{{ define "articles/list.tmpl"}}
<div class="list-group">
{{ range $article := .articles }}
  <a href="/articles/{{ $article.Id }}" class="list-group-item">
    <h4 class="list-group-item-heading">{{ $article.Title }}</h4>
    <p class="list-group-item-text">{{ formatTime $article.CreatedOn }}</p>
    <p class="list-group-item-text"></p>
  </a>
{{ end }}
</div>
{{ end }}
formatTime:使用 template.FuncMap 定义
要调用,请使用正常方式:
c.HTML(http.StatusOK, "articles/list", gin.H{
    "title":    "Articles",
    "articles": articles,
}) 
| 归档时间: | 
 | 
| 查看次数: | 1029 次 | 
| 最近记录: |