【问题标题】:Prevent Jade/Pug from Erroring when objects are undefined当对象未定义时防止 Jade/Pug 出错
【发布时间】:2017-03-01 10:43:26
【问题描述】:

有没有办法防止 Jade/Pug 在给它(未定义的)嵌套对象时抛出错误?每次发生这种情况时,整个页面都会中断,而不是仅仅遗漏一条丢失的信息。

当前行为:

- foo = undefined
span= foo.bar // Error: Cannot read property 'bar' of undefined, page Breaks

解决方法和期望的行为:

- foo = undefined
if foo
    span= foo.bar // leaves out this span, renders rest of the page 

我希望将这种行为作为标准,而不是每次都检查对象是否存在。尤其是对于更深的嵌套对象,这真的很痛苦。

【问题讨论】:

  • 就 JS 的完成方式而言,这是相当标准的,尤其是当你对变量有点混乱时。查看贡献者对此事的看法github.com/pugjs/pug/issues/719。因为 pug 是一个 JS 解释器,所以你获得了很大的权力,但这是你必须处理的权衡之一。再说了,if varname真的没那么糟糕

标签: express pug


【解决方案1】:

你可以试试好的 ole' 三元运算符。

span= foo ? foo.bar : null

据我所知,pug 仍将呈现具有空字符串或空值的元素。你最终会得到<span></span>。这个特性在li元素的情况下是有问题的;你会得到没有内容的要点。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2018-05-29
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多