Bootstrap: Как изменить активный класс navbar [duplicate]

Я потерял свой пароль Reddit, и нет возможности восстановить его.

. Точка, в которой есть проверенное письмо, не только означает, что кто-то может получить электронное письмо и щелкнуть ссылку в нем; робот тоже может это сделать. Электронная почта - это путь назад к пользователю: он служит для восстановления потерянных паролей (и людей do забывают пароли), уведомлять о важных событиях и т. Д.

OpenID также является отличный вариант регистрации / входа в систему, минимальный хлопот для пользователя, и вы также получаете подтвержденное электронное письмо.

1
задан 4m1nh4j1 24 February 2014 в 17:24
поделиться

3 ответа

Ваш код просто определяет макрос снова и снова, он ничего не отображает. Избегайте чтения request.endpoint и используйте базовые шаблоны для этого.

base.html

<ul class="nav nav-pills">
    <li class="{% block nav_here %}{% endblock %}">Here</li>
    <li class="{% block nav_there %}{% endblock %}">There</li>
    <li class="{% block nav_anywhere %}{% endblock %}">Anywhere</li>
</ul>

{% block content %}{% endblock %}

there.html

{% extends "base.html" %}
{% block nav_there %}active{% endblock %}
{% block content %}
    <blockquote>No matter where you go, there you are.</blockquote>
{% endblock %}

Базовая навигация определяет пустые nav_ блоки в классе li, а дополнительный шаблон устанавливает соответствующий параметр active. Вы можете расширить это, если хотите иметь суб-навигацию внутри страниц.

4
ответ дан davidism 16 August 2018 в 01:46
поделиться

По какой-то странной причине вышеупомянутое решение не сработало для меня. Также вам нужно добавить код в 2 части.

Мое простое решение. проверьте, равна ли конечная точка., затем установите активный.

 <li class="{% if  request.endpoint == "new_message" %}active{% endif %}"><a href="/new_message"><span class="glyphicon glyphicon-leaf"></span> Message</a></li>
0
ответ дан OWADVL 16 August 2018 в 01:46
поделиться

Правильно используйте макрос Jinja2. Это действительно полезная функция. В этом случае у вас нет правильного понимания того, как это работает. Этот пост объяснит это с надеждой. Это макрос для навигационного меню. Не забудьте поставить этот макрос где-то над кодом навигационного меню. В противном случае Jinja не найдет его при необходимости.

{% macro nav_link(endpoint, name) %}
    {% if request.endpoint.endswith(endpoint) %}
        <li class="active"><a href="{{ url_for(endpoint) }}">{{name}}</a></li>
    {% else %}
        <li><a href="{{ url_for(endpoint) }}">{{name}}</a></li>
    {% endif %}
{% endmacro %}

Вы должны определить этот блок кода отдельно в файле шаблона. Не помещайте его в петлю или в другое место. Когда вы вызываете макрос в любом месте вашего шаблона, этот блок кода будет выполняться и даст вам желаемый результат. Посмотрите, как использовать этот макрос. nav-link() - как регулярная функция. Вызовите его в своем блоке кода навигатора. Помните, что вы должны сначала определить эти маршруты на сервере. Или вы можете добавить эти макросы в отдельные html-файлы (скажем, macros.html) и импортировать в них любой макрос в любом месте.

<ul class="nav navbar-nav">
    {{ nav_link('home', 'Home') }}
    {{ nav_link('about', 'About') }}
    {{ nav_link('contact', 'Contact Us') }}
</ul>

Если вы используете macros.html, как я упоминал выше , вы можете использовать следующий код для импорта своего макроса.

{% from "macros.html" import nav_link with context %}

Это хороший учебник для шаблонов jinja2.

0
ответ дан Tharanga 16 August 2018 в 01:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: