Golang http /模板变量

时间:2018-05-02 03:51:56

标签: templates go

我在一个名为$ active的模板中有一个变量,我的想法是检查它是否激活导航栏按钮。我已经定义了一个逻辑正在发生的标题,但我试图在我的执行函数调用的html文件中定义$ active。问题是首先读取头,因此在body文件中定义的任何变量都太晚而不能影响逻辑。从标题:

{{ $a := mkSlice "SiteTester" "/sitetester-add/" }}
{{ $b := mkSlice "Index" "/" }}
{{ $nav := mkSlice $a $b }}
                <ul class="nav navbar-nav">
                    {{range $nav}}
                    <li{{if eq $active (index . 0) }} class="active"{{end}}><a href="{{index . 1}}">{{index . 0}}</a></li>
                    {{end}}
                </ul>

我甚至试图制作一个单独的snippit来处理变量赋值:

{{define "indexpreload"}}
{{$active := "Index"}}
{{end}} 

首先在解析的.html中调用它:

    {{template "indexpreload" .}}    
    {{template "header" .}}

    <h3 class="section-banner"><strong>Welcome</strong></h3>
    <hr class="divider">
    <div class="form-group col-md-4 text-left"></div>
    <div class="form-group col-md-4 text-left">
        <br><br>
        <p>Content content content</p>

    </div>

    {{template "footer" .}}

我很感激如何在标题运行之前分配变量?我希望将此登录信息保留在模板中,这样我就不必担心从程序中传递变量。

1 个答案:

答案 0 :(得分:0)

你有没有发现写出你的问题的行为澄清了你心中的问题,所以你不久之后自己回答?当我意识到我需要弄清楚如何在嵌套模板之间传递局部变量时,就会发生这种情况。对于那些希望在同一问题上寻求帮助的人来说,它就像

一样简单
{{template "<name>" $<variable name>}}