Golang http / переменная шаблона - PullRequest
0 голосов
/ 02 мая 2018

У меня есть переменная в шаблоне с именем $ active, и идея состоит в том, чтобы проверить ее, чтобы активировать кнопку navrbar или нет. Я определил заголовок, в котором происходит логика, но я пытаюсь определить $ active для файла html, вызываемого моей функцией Execute. Проблема в том, что заголовок читается первым, поэтому любые переменные, определенные в файлах тела, слишком поздно влияют на логику. Из шапки:

{{ $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>

Я даже пытался создать отдельный фрагмент кода только для обработки присвоения переменной:

{{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 голосов
/ 02 мая 2018

Считаете ли вы, что акт написания вашего вопроса проясняет проблему в вашем уме, поэтому вы сами отвечаете на него вскоре после этого? Это произошло здесь, когда я понял, что мне нужно выяснить, как передавать локальные переменные между вложенными шаблонами. Для тех, кто видит это в надежде на помощь по той же проблеме, это просто, как

{{template "<name>" $<variable name>}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...