douquanqiao6788 2014-07-21 11:05 采纳率: 100%
浏览 60
已采纳

如何解析Go模板范围之外的变量?

I have two structs as below and I need to render the data on a template using the templates pack. I get this error

<.Email>: Email is not a field of struct type Notes.

The issue seems to be that only fields of the range struct seem to be available within the range loop so I'm wondering how I can import fields from outside the range struct (e.g. the Email string).

The behavior is quite unexpected.

type notes struct{
    Note string
    sf string
}

type uis struct{
    notes []Note
    Email string
}

var ui uis

HTML

{{range .notes}}
    {{.Email}} {{.sf}}
    {{end}}

Email {{.Email}}

I've checked the godocs but they seem quite useless.

  • 写回答

1条回答 默认 最新

  • duankuai6991 2014-07-21 11:17
    关注

    From the documentation:

    When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot.

    Therefore, you can use this:

    {{range .notes}}
        {{$.Email}} {{.sf}}
    {{end}}
    
    Email {{.Email}}
    

    (Note the dollar sign inside the range)

    Playground link: http://play.golang.org/p/XiQFcGJEyR

    Side note: Next time try to provide proper code and a better explanation. As it stands, I think I've answered this, but I cannot be sure. Your code doesn't compile - for example, type names are wrong/mixed with members and you have unexported fields so they cannot be accessed by the templates.

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

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题