* ngIf中的Elvis运算符

时间:2018-08-14 07:55:10

标签: angular

我知道在以前的角度版本中,elvis运算符在* ngIf语句中不起作用。但是,现在(角度6)它不再抛出错误。

这是有效的声明吗?

[Error] Exception while executing function: Functions.monitorResultFullTrigger. mscorlib: Exception has been thrown by the target of an invocation. .Net SqlClient Data Provider: Procedure or function 'ActualsCreator' expects parameter '@MeaName', which was not supplied.

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

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

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

testobj = {}

有人可以澄清一下吗?

2 个答案:

答案 0 :(得分:1)

如果testobject不是null,则将代码翻译成普通英语,将得到sub,如果sub不是null,则得到{{ 1}},如果subobjtestobjectsub j不为空,则输出subob。是的,代码是有效的。

答案 1 :(得分:1)

像这样更正确

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

说如果testobject不是 falsy ,则转到其名称为sub的属性-如果它也不是 falsy ,请转到嵌套属性subobj并访问其数据并在*ngIf内部求值。如果某些条件是 fassy ,则返回false