【问题标题】:With handlebars.js, is it ok to call nested object properties that may be undefined?使用 handlebars.js,可以调用可能未定义的嵌套对象属性吗?
【发布时间】:2013-09-19 20:57:39
【问题描述】:

我注意到在我的 Handlebars.js 模板中定义以下内容可以正常工作:

<input name="username" value="{{user.name}}">

即使在以下情况下也有效:

  1. 用户未定义;和/或
  2. user.name 未定义

但是,我质疑这样做是否合适。后台发生了什么?下面的不是更合适,虽然会增加更多的混乱?

<input name="username" value="{{#if user}}{{#if user.name}}{{user.name}}{{/if}}{{/if}}">

谢谢。

【问题讨论】:

    标签: template-engine handlebars.js


    【解决方案1】:

    我没有看到这样做的好处。这引入了更多的代码混乱,没有额外的可读性和额外的功能。

    所以是的,如果获取 undefined 不会破坏您的页面,那么直接调用它而不检查它是否存在是完全合适的。

    但是,如果不存在的内容会破坏您的页面结构,您一定要先检查以确保它存在。

    例如,如果您不希望显示评论部分,除非确实有 cmets 要显示,那么您可以使用这里描述的 if 块。

    但它看起来更像这样:

    {{#if user.name}}
        <input name="username" value="{{user.name}}">
    {{/if}}
    

    【讨论】:

    • 如果您想要更多的可读性,您可能的意思是“是的,调用可能未定义的嵌套对象属性是合适的”?
    • 抱歉,误读了您的评论,收到的反馈和答案已更改:)
    猜你喜欢
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多