我正在声明将DocxTemplater与Node一起使用。

我试图弄清楚如果元素为空(即''或空'')如何删除空行-我似乎在SO或其他地方找不到类似的情况!

我在Docx上的占位符如下所示:

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


我的任何数组看起来像这样:

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


创建文档时,我想删除“ Line2”为空的行。

所以代替这个:

TEXT1

TEXT3


我想要

TEXT1
TEXT3




更新

根据建议将我的代码更改为以下代码,但未成功。还有其他指针吗?提前致谢!

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




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

最佳答案

我是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

09-12 21:22