使用{{ define "something" }}
,我们可以重用一些html代码:
{{ template "something" . }}
{{ template "something" . }}
{{ template "something" . }}
这很棒,但有时(诚实地说经常)我们需要使用id。最常见的情况是编写带有输入和带有“for”属性的标签的表单。对于某些东西也是如此。
但是如果我写这样的话:
{{ define "something" }}
<label for="best-input">Best label</label>
<p>...</p>
<input id="best-input">
{{ .some.data.I.need.from.dot.var }}
{{ end }}
{{ template "something" . }}
{{ template "something" . }}
{{ template "something" . }}
当然,我将获得3个具有相同ID的输入。因此,我的标签将工作错误,并且控制台中将出现警告。
另外,我什至不能写
{{ template "t" "id1" }} {{template "t" "id2" }}
,因为我需要'。'。也可变。那么,我该如何解决呢?有什么简单的方法吗?
最佳答案
所以..我只需要...
{{ define "something" }}
{{ $id := uniqueId }}
<label for="{{ $id }}">Best label</label>
<p>...</p>
<input id="{{ $id }}">
{{ .some.data.I.need.from.dot.var }}
{{ end }}
{{ template "something" . }}
{{ template "something" . }}
{{ template "something" . }}
其中
uniqueId
-只是template.FuncMap中定义的函数
关于go - 如何在{{define“…”}}的gotemplate中为<input>和<label>标签创建唯一的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60195905/