Условное утверждение в мопсе - PullRequest
1 голос
/ 15 марта 2019

У меня есть следующий вариант использования, в моем проекте у меня есть два разных нижних колонтитула. Благодаря предложению @sean я опробовал заявление по делу. Это мой шаблон:

//- layout.pug
include head

body
    block nav
        include nav

    block content  

    block footer

        case chooseFooter
            when 1
                include footer1
            when 2 
                include footer2        

    block scripts
        script(src='js/index.js')

Это первый нижний колонтитул:

li
  .footer_contact1

li
  .footer_contact1

Это второй нижний колонтитул:

ul.boxes
      li
      .footer_contact2

    li
      .footer_contact2

И это страница индекса, вызывающая шаблон:

extend includes/layout

append content
    .promo

    ul.boxes
        li
          .boxes__text-wrapper
        li
          .boxes__text-wrapper
        li
          .boxes__text-wrapper
        li
          .boxes__text-wrapper

prepend footer
        - let chooseFooter = 1

Проблема согласуется, если я выбираю footer1, я получаю следующий вывод:

<div class="promo">
    <p>some text</p>
  </div>
  <ul class="boxes">
    <li>
      <div class="boxes__text-wrapper"></div>
    </li>
    <li>
      <div class="boxes__text-wrapper"></div>
    </li>
    <li>
      <div class="boxes__text-wrapper"></div>
    </li>
    <li>
      <div class="boxes__text-wrapper"></div>
    </li>
</ul>
<li>
      <div class=".footer_contact1"></div>
 </li>
<li>
      <div class=".footer_contact1"></div>
 </li>

<script src="js/index.js"></script>

Таким образом, li: s в первом нижнем колонтитуле выходят за пределы ul, и они должны быть внутри заключительного ul.

Если я не использую код дела и просто делаю обычное включение, вставляю его после последнего элемента li в индексном файле и использую следующее:

li
   .boxes__text-wrapper

include includes/footer

затем элементы footer1 li вставляются перед закрывающим тегом ul. Но тогда я не могу использовать только один нижний колонтитул.

Надеюсь, в этот раз у меня будет больше смысла.

Спасибо:)

1 Ответ

0 голосов
/ 16 марта 2019

Попробуйте этот подход.Настройте условную или case инструкцию в своем блоке шаблона, которая проверяет значение переменной.

layout.pug

html
  head
    block head

  body
    nav
    block content
    block footer
      footer
        case whichFooter
          when 1
            p Some footer content
          when 2
            p Some other footer content
          default
            p Some other default footer content
    block scripts
      script(src='/my.js')
      script(src='/pets.js')

Затем определите эту переменную на своей странице и добавьте к соответствующему блоку в шаблоне.

page.pug

extends layout

append head
  title Page A

append content
  p My page content...

prepend footer
  - let whichFooter = 1

Таким образом, вы эффективно определяете переменную до того, как pug потребуется ее для проверки условного оператора или оператора case.

(Также не забудьте вложить это nav в bodyвместо этого.)

...