在 Angular 2 中的字符串内插表达式中使用 Elvis 运算符

Using Elvis Operator within String Interpolated Expressions in Angular 2

在我的 Angular 2 应用程序中,我使用字符串插值从 mongoDB 中提取数据。现在 server/database 在不断变化,所以有时会破坏我的客户端显示,因为例如,如果我通过字符串插值提取数据,如下所示:

{{record.addresses[0].zipCode}}

... 然后,稍后,数据在数据库中的组织方式发生变化,这将破坏我的显示 - 因为客户端正试图从不再存在的字段中拉入。所以我认为我应该能够在这样的用例中使用类似 elvis 运算符的东西。这样,如果数据在客户端查找的位置,它就会打印到屏幕上。但是,如果数据不在它要查找的位置,它将完全忽略该字段 - 不会破坏显示中的任何内容。

所以,简而言之,我将如何在上面的表达式上实现 elvis 运算符?

你这样使用它:

{{record?.addresses[0]?.zipCode}}

这将检查 record 是否已定义,然后 addresses[0] 是否在 record object 下定义,然后 zipCode 是否在该对象下定义