angular 模板中的问号是什么?

what is the question mark in an angular template?

我正在查看 angular firebase 文档,我看到了这个:

@Component({
  selector: 'app-root',
  template: `
  <h1>{{ (item | async)?.name }}</h1>
  `,
})
export class AppComponent {
  item: FirebaseObjectObservable<any>;
  constructor(db: AngularFireDatabase) {
    this.item = db.object('/item');
  }
}

(item | async)后面的?是做什么用的?

在模板中做undefined.someProperty不就可以了吗?

调用 'Elvis Operator' 或安全导航运算符。它通知模板需要显示的值可能还不可用,并允许模板继续渲染并在以后填充该值。

当您的模板在数据到达(可能来自服务或数据库)到达之前呈现时,它可以避免您遇到 'undefined' 错误。