我知道在以前的角度版本中,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 = {}
有人可以澄清一下吗?
答案 0 :(得分:1)
如果testobject
不是null
,则将代码翻译成普通英语,将得到sub
,如果sub
不是null
,则得到{{ 1}},如果subobj
和testobject
和sub
j不为空,则输出subob
。是的,代码是有效的。
答案 1 :(得分:1)
像这样更正确
<div *ngIf="testobject && testobject.sub && testobj.sub.subobj">
Hallo Test Test
</div>
说如果testobject
不是 falsy ,则转到其名称为sub
的属性-如果它也不是 falsy ,请转到嵌套属性subobj
并访问其数据并在*ngIf
内部求值。如果某些条件是 fassy ,则返回false
。