Мои условные выражения включаются мопсом в вывод HTML - PullRequest
0 голосов
/ 07 мая 2020

У меня есть следующий код в шаблоне мопса:

body
    h1(style="text-align: center;") Invoice Number #{invoiceNum}
    table(id="addr-tbl")
        tr
            td(style="width:50%").
                #{vendor.name}<br>
                #{vendor.addrLine1}<br>
                #{vendor.addrLine2}<br>
                #{vendor.addrLine3}<br>
                if (vendor.addrCity)
                    #{vendor.addrCity}
                if (vendor.addrState)
                    , #{vendor.addrState}
                if (vendor.addrPostalCode)
                    #{vendor.addrPostalCode}
                <br>

Это выводит мои операторы if в HTML. Затем я попробовал следующее:

            td(style="width:50%").
                #{vendor.name}<br>
                #{vendor.addrLine1}<br>
                #{vendor.addrLine2}<br>
                #{vendor.addrLine3}<br>
            if (vendor.addrCity)
                |#{vendor.addrCity}
            if (vendor.addrState)
                |, #{vendor.addrState}
            if (vendor.addrPostalCode)
                | #{vendor.addrPostalCode}
            <br>

, который не выводит инструкцию if, но также выводит addrCity, addrState и addrPostalCode за пределами тега td.

Цель состоит в том, чтобы вывести каждый из этих компонентов адреса (возможно, после / после запятой), только если они не null / undefined. Иначе ничего.

Как в мопсе это сделать?

1 Ответ

1 голос
/ 07 мая 2020

Завершающий . на вашем td заставляет содержимое быть текстом. Если у вас есть сочетание текста и кода:

 td(style="width:50%")
   | #{vendor.name}<br>
   | ...
   | #{vendor.addrLine3}<br>
   if (vendor.addrCity)
     | #{vendor.addrCity}

, тогда вы можете c более подробно рассказать, что это за код, а что за текст.

...