Angular 角度模板中的问号是什么?
我正在查看angular firebase文档,我看到:Angular 角度模板中的问号是什么?,angular,firebase,firebase-realtime-database,angularfire2,Angular,Firebase,Firebase Realtime Database,Angularfire2,我正在查看angular firebase文档,我看到: @Component({ selector: 'app-root', template: ` <h1>{{ (item | async)?.name }}</h1> `, }) export class AppComponent { item: FirebaseObjectObservable<any>; constructor(db: AngularFireDatabase)
@Component({
selector: 'app-root',
template: `
<h1>{{ (item | async)?.name }}</h1>
`,
})
export class AppComponent {
item: FirebaseObjectObservable<any>;
constructor(db: AngularFireDatabase) {
this.item = db.object('/item');
}
}
@组件({
选择器:'应用程序根',
模板:`
{{(项目|异步)?.name}
`,
})
导出类AppComponent{
项目:FirebaseObjectObservable;
构造函数(db:AngularFireDatabase){
this.item=db.object('/item');
}
}
?
在(项目|异步)
之后签名做什么
在模板中执行
未定义的.someProperty
不是很好吗?它被称为“Elvis操作符”或安全导航操作符。它会通知模板需要显示的值可能还不可用,并允许模板继续呈现,并在以后填充该值
它可以避免在数据到达之前呈现模板时出现“未定义”错误,可能是来自服务或数据库。您可以轻松地在Google上搜索“?operator angular”,并找到您问题的答案……谢谢聪明的家伙!值得指出的是,如果已知该属性(即“name”)是非空属性,那么就不需要使用?存在异步管道时的运算符。这甚至可能是一个问题,如果“项”未加载,将防止出现有用的错误。