我理解它不是最好的帖子。但是我在材料多选自定义触发器示例中看到了这行代码。
*ngIf="toppings.value?.length > 1"
https://stackblitz.com/angular/omvmgjjbnnq?file=app%2Fselect-custom-trigger-example.html
我不明白"?"正在这里做,我甚至很难用谷歌搜索它可能是什么(谷歌不喜欢问号)。这是否允许您安全地调用value
的属性,而无需检查是否已定义value
或为空?
答案 0 :(得分:3)
* ngIf =" toppings.value?。length> 1"
我将解释每个部分
* ngIf
如果表达式的计算结果为 false ,则条件指令会删除DOM元素。
浇头
是组件上的公共属性。
。价值
是?
变量的子属性。
。价值?。长度
如果toppings.value
的值未定义,length
运算符会告知Angular停止计算表达式。这可以防止您undefined
不属于*ngIf
错误。
toppings.value?.length> 1
告知toppings.value
在toppings.value.length
未未定义且1
大于?
时保留DOM元素。
这就是调用{{1}}标记的内容。
https://angular.io/guide/template-syntax#the-safe-navigation-operator----and-null-property-paths
这也是一个非常糟糕的名字,以及为什么你无法找到任何Google搜索结果。