html/template if range index clause



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

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

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

从我读到的内容来看,模板不是用于计算的,但是如果您在html/template包中有一个范围索引和if语句,那么在我看来,我一定做错了什么。我当然可以写一个FuncMap,没问题。但鉴于这些事实,这对我来说似乎不对。

我正在使用这样的东西来有条件地包含默认图像或提供的图片切片中的第一个图像。 所以我认为这将为你提供做你想做的事的基础。 我检查切片是否有值,使用 {{index 拉取第 N 项。Slice 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 }}

最新更新