drz73366 2016-07-19 11:50
浏览 41
已采纳

强制转换界面{}以输入模板

  Templates.ExecuteTemplate(w, "index.html", map[string]interface{} {
        "Games": games})
}

Where games is []map[string]interface{} (mapped result of sql query)

In template:

{{ range $gval := .Games }} 
    {{ how to make something like: $gval.name.(string) }} 
{{end}}

How to cast interface{} value of map to string(or int) in template? In 'go' i can do games[0]["name"].(string)

When i do $gval.name it writes hex string

  • 写回答

1条回答 默认 最新

  • dousong3760 2016-07-19 13:30
    关注

    I don't think it's possible to do type assertions from a template. You'll have to write your own function and call it from the template. For example:

    func ToString(value interface{}) string {
        switch v := value.(type) {
        case string:
            return v
        case int:
            return strconv.Itoa(v)
        // Add whatever other types you need
        default:
            return ""
        }
    }
    

    To be able to call the function from template you have to call the Funcs() method on your template:

    tpl.Funcs(template.FuncMap{"tostring": ToString})
    

    Now you can do {{$gval.name | tostring}} inside your template

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错