代码之家  ›  专栏  ›  技术社区  ›  dave0688

*ngif中的ELVIS操作员

  •  1
  • dave0688  · 技术社区  · 6 年前

    我知道在以前的角度版本中,ELVIS操作符在*ngif语句中不起作用。然而,现在(角度6)它不再抛出错误。

    这是有效的声明吗?

    <div *ngIf="testobject?.sub?.subobj">
        Hallo Test Test
    </div>
    

    鉴于

    testobj = {}
    

    如果是,它是什么时候添加的?

    据我所知,声明必须如下:

    <div *ngIf="testobject.sub && testobj.sub.subobj">
        Hallo Test Test
    </div>
    

    有人能澄清一下吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Alf Moh    6 年前

    如果把代码翻译成简单的英语, testobject 不是 null ,得到 sub 如果 附属的 不是 无效的 得到 subobj 如果 测试对象 附属的 subob j不为空,输出 Hallo Test Test . 是的,代码是有效的。

        2
  •  1
  •   Suren Srapyan    6 年前

    这样更正确

    <div *ngIf="testobject && testobject.sub && testobj.sub.subobj">
        Hallo Test Test
    </div>
    

    说如果 testobject 不是 法西 ,然后转到它的名为的属性 sub -如果这不是 法西 ,转到嵌套属性 subobj 获取数据并在内部进行评估 *ngIf . 如果某些条件是 法西 ,返回 false .