我正在编写一个代码,我在视图中找到了这段代码。据我所知,三元条件包含一个“?”然后用冒号“:”分隔2组指令。我无法理解这个三元运算符是如何工作的 - 因为它有3个问号而且只有1个冒号。
三元运算符语法:
var result = condition? if true do this : if false do this;
以Angular编写的自定义代码:
<p>{{ myModal?.subTotal!=null ? '$'+myModal?.subTotal : '' }}</p>
有人可以解释这三元条件的写法吗?
答案 0 :(得分:3)
查看此部分 - myModal?.subTotal != null
如果myModal
为undefined or null
,请返回false
。否则,访问subTotal
属性,如果不是null
则返回true
,否则为false
。
这与myModal && myModal.subTotal != null
有关详情,请参阅Documentation。
答案 1 :(得分:1)
在这种情况下,第一个和最后一个问号不是三元运算符。
myModal?.subTotal!=null ? '$'+myModal?.subTotal : ''
(condition ) ? (if ) : (else)
有关详细信息,请参阅The safe navigation operator (?.
) and null property paths。
Angular安全导航操作符(
?.
)是一种流畅且方便的方法,可以防止属性路径中的null和undefined值。