如何将变量传递给模板并在beego

时间:2016-08-10 09:48:45

标签: templates go beego go-templates

我的模板文件:

{{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 个答案:

答案 0 :(得分: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内部仅将该选项称为点.(点.将表示您传递给模板的管道的值,即{{1} }在调用者模板中):

$option