JavaScript或Angular4

时间:2018-03-26 08:13:05

标签: javascript angular conditional ternary-operator

我正在编写一个代码,我在视图中找到了这段代码。据我所知,三元条件包含一个“?”然后用冒号“:”分隔2组指令。我无法理解这个三元运算符是如何工作的 - 因为它有3个问号而且只有1个冒号。

三元运算符语法:

var result = condition? if true do this : if false do this; 

以Angular编写的自定义代码:

<p>{{ myModal?.subTotal!=null ? '$'+myModal?.subTotal : '' }}</p>

有人可以解释这三元条件的写法吗?

2 个答案:

答案 0 :(得分:3)

查看此部分 - myModal?.subTotal != null

如果myModalundefined 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值。