在 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
是否在该对象下定义
在我的 Angular 2 应用程序中,我使用字符串插值从 mongoDB 中提取数据。现在 server/database 在不断变化,所以有时会破坏我的客户端显示,因为例如,如果我通过字符串插值提取数据,如下所示:
{{record.addresses[0].zipCode}}
... 然后,稍后,数据在数据库中的组织方式发生变化,这将破坏我的显示 - 因为客户端正试图从不再存在的字段中拉入。所以我认为我应该能够在这样的用例中使用类似 elvis 运算符的东西。这样,如果数据在客户端查找的位置,它就会打印到屏幕上。但是,如果数据不在它要查找的位置,它将完全忽略该字段 - 不会破坏显示中的任何内容。
所以,简而言之,我将如何在上面的表达式上实现 elvis 运算符?
你这样使用它:
{{record?.addresses[0]?.zipCode}}
这将检查 record
是否已定义,然后 addresses[0]
是否在 record
object
下定义,然后 zipCode
是否在该对象下定义