什么?意味着角度5?

Ric*_*aby 12 angular

我知道如果我有像product.id == 1这样的东西?东西:不是东西.这意味着如果id = 1,则选择"stuff".如果没有,那么选择"不是东西".以下是什么意思:

product?.id.name
Run Code Online (Sandbox Code Playgroud)

Saj*_*ran 14

? 意味着安全 navigation operator

Docs

Angular安全导航操作符(?.)是一种流畅且方便的方法,可以防止属性路径中的null和undefined值.如果currentHero为null,则保护视图呈现失败.

这特别意味着如果绑定到视图的值为null,那么它应该返回null,否则返回实际值,这样在渲染模板时就不会出现任何问题.

在上面提供的示例代码中,

product?.id.name

它检查生成对象是否存在,然后检查是否有id.既然你没有 ?身份证.it will throw an error "cannot read property of 'name' undefined".


yur*_*zui 13

字面意思是:

((product == null) ? null: product.id.name)
Run Code Online (Sandbox Code Playgroud)

因此,如果product为null,则返回null否则返回整个值.

在此输入图像描述

如果我们有:

product?.id?.name
Run Code Online (Sandbox Code Playgroud)

那么我们应该期待类似的东西:

((product == null) ? null: ((product.id == null) ? null: product.id.name))
Run Code Online (Sandbox Code Playgroud)

如果你有疑问那么你可以随时检查角度编译后的样子:

有关详细信息,请参阅文档: