Angular2 在带有正斜杠的对象键上使用猫王运算符



我在解析时遇到了问题,这是用 Elvis 运算符解决的,但是如果我有包含正斜杠的键,我就不能使用 Elvis 运算符,因为我必须将该键放入方括号中。

如果键像这样简单("名字")有效

{{ data?.record?.firstname }}

如果键有这样的正括号("名称/名字")则不起作用

{{ data?.record?['name/first']}}

如果我使用方括号,猫王似乎不可用。

有什么解决方法吗?也许是一种逃避正斜杠的方法。像这样的符号:

{{ data?.record?.name\/first }}

Elvis 运算符仅适用于.,不适用于其他取消引用运算符,如 []

作为解决方法使用

{{ data?.record ? data.record['name/first'] : null}}

实际上,您可以同时使用 ? 和 []:

辛塔塞

obj?.道具
obj?.[expr]
到达?。[索引]
函数?。(参数)

在您的情况下,它应该是:

{

{ 数据?.记录?。['名称/第一个']}}

如果它是一个数组,它仍然有效,如下所示:

属性['bar/foo']?.[0]

非常有用... :-)

来源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

最新更新