Удалить пустую строку в DocxTemplater - PullRequest
1 голос
/ 08 июля 2019

Я получаю указание, используя DocxTemplater с Node.

Я пытаюсь выяснить, как удалить пустую строку, если элемент пуст (т. Е. '' Или null) - похоже, я не могу найти аналогичный случай в SO или в другом месте!

Мои заполнители на Docx выглядят так:

{#data}
{#input}
{Line1}
{Line2}
{Line3}
{/input}
{/data}

Любой мой массив выглядит так:

data: {
    input: {
        Line1: 'TEXT1',
        Line2: '',
        Line3: 'TEXT3'
    },
}

Когда я создаю документ, я хотел бы удалить строку, в которой строка 2 пуста.

Итак, вместо этого:

TEXT1

TEXT3

Я бы хотел

TEXT1
TEXT3

UPDATE

Изменил мой код на приведенный ниже согласно совету, однако не имел никакого успеха. Есть еще указатели? Заранее спасибо!

{#data}
{#input}
{#Line1}{Line1}{/Line1}
    {#hasLine2}{Line2}{/hasLine2}
    {#Line3}{Line3}{/Line3}
{/input}
{/data}

И

data: {
    input: {
        Line1: 'TEXT1',
        Line2: '',
        Line3: 'TEXT3',
        hasLine2: false
    },
}

Ответы [ 2 ]

1 голос
/ 22 июля 2019

Я создатель docxtemplater

Вы можете сделать так:

{#data}
{#input}
{#Line1}
{Line1}
{/Line1}
{#hasLine2}
{Line2}
{/hasLine2}
{#Line3}
{Line3}
{/Line3}
{/input}
{/data}

и вы в своем коде:

new Docxtemplater()
    .loadZip(zip)
    .setOptions({paragraphLoop:true})

С параметром абзац-петли, если начало цикла и конец цикла находятся в отдельных абзацах, вы не получите никакого дополнительного пространства, когда ваши разделы пусты.

Это задокументировано здесь: https://docxtemplater.readthedocs.io/en/latest/configuration.html?highlight=paragraphLoop#paragraphloop

0 голосов
/ 08 июля 2019

Апперентли In docxtemplater, conditions and loops use the same syntax called Sections.

Таким образом, вы можете сделать шаблон как:

{#data}
  {#input}
    {#Line1}{.}{/Line1}
    {#Line2}{.}{/Line2}
    {#Line3}{.}{/Line3}
  {/input}
{/data}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...