当前位置:  开发笔记 > 编程语言 > 正文

访问golang模板循环中的循环值

如何解决《访问golang模板循环中的循环值》经验,为你挑选了3个好方法。

我有这个结构:

type Site struct {
    Name string
    Pages []int
}

我将一个实例传递Site给模板.

如果我想写一个所有页面的列表,我会这样做

{{range .Pages}}
    
  • {{.}}
  • {{end}}

    现在,Name在循环中使用该字段的最简单方法是什么(例如更改hrefName/page)?

    请注意,基于外部对象是传递给模板的全局对象这一事实的解决方案是可以的.



    1> chowey..:

    您应该知道传入模板的变量可用$.

    {{range .Pages}}
        
  • {{.}}
  • {{end}}

    (参见"变量"下的文本/模板文档.)


    "$",我怎么会错过巡演中的那个...... +1并谢谢!

    2> creack..:

    关于什么:

    {{$name := .Name}}
    {{range $page := .Pages}}
        
  • {{$page}}
  • {{end}}

    或者只是Pages使用Name作为值制作地图?

    type Site struct {
        Pages map[string]string
    }
    
    
    {{range $page, $name := .Pages}}
        
  • {{$page}}
  • {{end}}



    3> Denys Ségure..:

    看起来没有比为外部对象(或其属性)显式声明变量更简单的解决方案:

    {{$out := .}}
    {{range .Pages}}
        
  • {{.}}
  • {{end}}

    编辑:这个答案不再是正确的,请看看chowey的答案.

    推荐阅读
    小白也坚强_177
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有