-3

我们可以重用{{ define "something" }}一些html代码:

{{ template "something" . }}
{{ template "something" . }}
{{ template "something" . }}

这很好,但有时(老实说经常)我们需要使用 id。最常见的情况是当您编写带有“for”属性的输入和标签的表单时。对于一些 a11y 的事情也是如此。

但如果我写这样的东西:

{{ 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" }},因为我需要'。变量也。

那么,我该如何解决呢?有什么简单的方法吗?

4

1 回答 1

0

所以..我需要的是...

{{ 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 中定义的一个函数

于 2020-02-12T22:30:46.110 回答