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 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环
  • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!
  • ¥100 Excel 点击发送自动跳转outlook邮件