我使用康菲通过模板填充文件。
在这个文件中,我希望移动并插入元素列表。此切片包含字符串,如
0=container-1
1=container-2
2=container-3
3=container-4(实际上,它是我使用split confd函数拆分的一个字符串)。我希望,在每个容器上,能够过滤出容器名称,并在我的容器首先出现之后,将列表移动到具有这些名称的容器。
例如,在container-2上,我希望结果是
2=container-3
3=container-4
0=container-1如何在confd go模板中做到这一点?我想我知道如何用go (但我不太擅长那种特定的语言),但我找不到如何仅仅使用一个模板.
发布于 2017-11-15 16:43:02
如果无法操作模板外部的切片/字符串,如果无法向模板添加自定义函数,则必须在模板内执行此操作。这更详细,但可行。
一种方法是在父循环中嵌套两个循环。父节点将查找您想要省略的容器,此时它将生成两个子循环,其中$i保存要删除的一个索引。然后,第一个子循环可以列出索引大于$i的容器,第二个子循环将列出索引小于$i的容器。
{{range $i, $c := $cons}}
{{/* find item to be skipped */}}
{{if (eq $c $.Skip)}}
{{range $j, $c := $cons}}
{{/* list items that come after the one to be skipped */}}
{{if (gt $j $i)}}
{{$c}}
{{end}}
{{end}}
{{range $j, $c := $cons}}
{{/* list items that come before the one to be skipped */}}
{{if (lt $j $i)}}
{{$c}}
{{end}}
{{end}}
{{end}}
{{end}}https://stackoverflow.com/questions/47288067
复制相似问题