node.js - 我的条件被 pug 包含在 HTML 输出中
问题描述
我在哈巴狗模板中有以下代码:
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
。否则,什么都没有。
我怎么能在哈巴狗中做到这一点?
解决方案
.
你的尾随td
是强制内容为文本。如果您有文本和代码的混合:
td(style="width:50%")
| #{vendor.name}<br>
| ...
| #{vendor.addrLine3}<br>
if (vendor.addrCity)
| #{vendor.addrCity}
然后,您可以更具体地了解什么是代码和什么是文本。
推荐阅读
- javascript - 根据 id 更改某些 div 的样式
- python-3.x - Numpy,相同的值输入得到不同的点积
- sql - 对 Hive 或 Impala 的 Flyway 支持
- angular - ui-select-choice 上的 ui-select-header-group-selectable 指令不起作用
- sql - 证明 XML 字段的主索引不会使检索更快
- css - 在输入元素下方放置标签描述
- vba - 将新宏添加到已创建的安装程序 Excel
- sympy - 多项式求逆的两种实现
- aframe - Aframe 音频问题
- sql - Oracle,查找两个不同日期之间的数据