使用handlebars.js,可以调用可能未定义的嵌套对象属性吗?

时间:2013-09-19 20:57:40

标签: template-engine handlebars.js

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

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

即使在以下情况下也能正常工作:

  1. 用户未定义;和/或
  2. user.name未定义
  3. 但是,我在质疑这样做是否合适。背景中发生了什么?以下是不是更合适,虽然增加了更多的混乱?

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

    感谢。

1 个答案:

答案 0 :(得分:1)

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

所以是的,如果获得未定义的内容不会破坏您的页面,那么只需调用它就可以不检查它是否存在。

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

例如,如果您不希望显示评论部分,除非实际显示评论,您将使用此处描述的if块。

但它看起来更像是这样:

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