Как передать переменную в шаблон и получить переменную в 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}}
Другие вопросы по тегам