为什么我们使用"?" 角度2中模板绑定的运算符

Soh*_*ail 50 angular

只是想知道使用"?" 角度2中模板绑定的运算符.

在我使用的项目中?绑定效果很好,但如果删除它,它不会在视图中显示任何内容.

<span class="subhead">{{project?.category}}</span>
Run Code Online (Sandbox Code Playgroud)

你能否告诉我不同​​之处,这样做或坏的使用是一种好习惯.

谢谢

Gün*_*uer 59

当Angular在project获得分配值之前呈现视图时,会导致异常.?.停止评估何时projectnull或者undefined,通常在数据被提取异步时发生,例如从服务器获取可能需要相当长时间的时间.

下次更改检测识别出更改时,将重新评估绑定.当project它有一个值时它会绑定project.category.

  • `[prop] =“ project?.category!== null吗?project.category:defaultValue”` (2认同)

eko*_*eko 33

?是安全的导航运营商.它检查变量是否是,null或者undefined我们的模板不会尝试选择某个falsy的属性.

更多信息:https://angular.io/guide/template-syntax#the-safe-navigation-operator----and-null-property-paths