Как передать переменную в шаблон и получить переменную в beego
Мой файл шаблона:
{{range $index, $option := .alternatives}}
<div id="splashAlternative{{$index}}" class="col-sm-2">
<select id="flashSrc_{{$index}}">
{{template "alternative_src.html" $option}}
</select>
</div>
{{end}}
Я хочу пройти $option
в шаблон и alternative_src.html
код:
{{if compare .option ""}}
<option value="" selected="selected">
</option>
{{else}}
<option value=""></option>
{{end}}
{{if compare .option "xxx"}}
<option value="xxx" selected="selected">xxx</option>
{{else}}
<option value="xxx">xxx</option>
{{end}}
но у меня проблема ниже:
executing "alternative_src.html" at <.option>: can't evaluate field option in type string
1 ответ
Когда вы используете {{template}}
действие, и вы передаете что-то, что становится точкой .
в вызываемом шаблоне. Цитирование из пакета документов text/template
:
{{template "name" pipeline}}
The template with the specified name is executed with dot set
to the value of the pipeline.
Так внутри alternative_src.html
ссылаться на опцию только как точку .
(точка .
будет означать значение конвейера, который вы передали шаблону, который $option
в шаблоне звонящего):
{{if compare . ""}}
<option value="" selected="selected">
</option>
{{else}}
<option value=""></option>
{{end}}
{{if compare . "xxx"}}
<option value="xxx" selected="selected">xxx</option>
{{else}}
<option value="xxx">xxx</option>
{{end}}