【问题标题】:html/template if range index clausehtml/template if 范围索引子句
【发布时间】:2013-09-05 13:41:25
【问题描述】:

我有这个模板,可以将切片的多个项目解析到页面上。它确实做得很好。

但是,我现在想使用相同的模板来解析切片的单个值,基于范围索引。切片在多个文件中使用,所以我不能像 Slice[1:2] 一样执行它

{{ $bpi := .Index}}

{{ range $i, $elmt := .Slice }}
    {{ if $bpi.Equals $i }}
      <div>{{ .SliceContent }}</div>
    {{ end }}
{{ end }}

根据我的阅读,该模板不适用于计算,但如果您在 html/template 包中有范围索引和 if 语句,在我看来,我一定是做错了什么.我当然可以写一个 FuncMap,没问题。但考虑到这些事实,我觉得这不太对。

【问题讨论】:

  • 只是好奇,你的问题解决了吗?
  • 我还没试过,但我会的。我没有忘记它。只是我在其他项目上非常忙碌,比如 24/7 忙碌。我想下周我可以再次潜入围棋。感谢您的回复,如果我这样解决它会更干净。下周见!

标签: templates go


【解决方案1】:

我正在使用类似的东西来有条件地包含默认图像或提供的图片切片中的第一个图像。所以我认为这将为你提供做你想做的事情的基础。我检查切片是否有值,使用 {{index .Slice n}} 语法拉出第 N 个项目,如下所示:

     {{ $idx := 2}}
     {{if .Pictures}}
       <img src="{{if .Pictures}}{{index .Pictures $idx}}{{end}}" alt="supplied first picture">
     {{else}}
       <img src="http://fpoimg.com/200x200?text=Placeholder(FPOimg.com)" alt="default picture">
     {{end}}

因此,您可以执行以下操作:

    {{ $bpi := .Index}}

    {{ if .Slice }}
        {{ index .Slice $bpi }}
    {{ end }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 2011-06-01
    • 2019-08-31
    • 2015-08-23
    • 1970-01-01
    • 2016-11-29
    • 2023-02-18
    相关资源
    最近更新 更多