我正在将DocxTemplater与Node一起使用。
我正在尝试弄清楚如果元素为空(即''或null)如何删除空行-我似乎在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
},
}
答案 0 :(得分:0)
显然是In docxtemplater, conditions and loops use the same syntax called Sections
。
因此,您可以将模板制作为:
{#data}
{#input}
{#Line1}{.}{/Line1}
{#Line2}{.}{/Line2}
{#Line3}{.}{/Line3}
{/input}
{/data}
答案 1 :(得分:0)
我是docxtemplater的创建者
您可以这样做:
{#data}
{#input}
{#Line1}
{Line1}
{/Line1}
{#hasLine2}
{Line2}
{/hasLine2}
{#Line3}
{Line3}
{/Line3}
{/input}
{/data}
还有您的代码:
new Docxtemplater()
.loadZip(zip)
.setOptions({paragraphLoop:true})
使用paragraphLoop选项,如果循环的开始和循环的结束位于单独的段落中,那么当您的节为空时,您将不会获得任何多余的空间。