【问题标题】:Range over string or string array in Go templateGo模板中字符串或字符串数​​组的范围
【发布时间】:2021-10-25 05:17:43
【问题描述】:

我正在编写一个使用连续字母字符的 Go 模板。举个简单的例子:

{{ range $i, $e := until 2 }}
{{ range $a := .[]string{"a", "b", "c"} }}
<p>{{ $e }}{{ $a }}. Sample Text</p>
{{ end }}
<br>
{{ end }}

应该让步:

<p>0a. Sample Text</p>
<p>0b. Sample Text</p>
<p>0c. Sample Text</p>
<br>
<p>1a. Sample Text</p>
<p>1b. Sample Text</p>
<p>1c. Sample Text</p>
<br>

如果 go 模板允许您在模板中以这种方式定义数组,则上述代码将起作用。我需要与此类似的东西,或answer here,但我无法编写自己的函数。我正在将它用于另一个让我编写 go 模板的软件,但我无法修改 go 代码本身,这意味着也没有传递变量。

我在问不可能吗?

【问题讨论】:

  • 您的模板中有哪些功能可用? until 不是标准库中的函数,也许until 来自其他“宝石”。

标签: go go-templates


【解决方案1】:

看起来模板主机使用Sprig。使用 Sprig 中的 list 函数。

{{ range $i, $e := until 2 }}
{{ range $a := list "a" "b" "c"}}
<p>{{ $e }}{{ $a }}. Sample Text</p>
{{- end}}
<br>
{{- end}}

Run an example on the playground.

【讨论】:

  • 我在操场上询问之前尝试过这个,但不知道我需要导入 Sprig 库。这正是我想要的方式,谢谢!
猜你喜欢
  • 2014-09-30
  • 2019-06-06
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 2013-06-04
  • 2014-04-11
  • 1970-01-01
  • 2010-09-20
相关资源
最近更新 更多