我有一个处理用户身份验证的服务。从数据库获取用户详细信息的auth
服务。
getUser(){
return this.storage.get('user').then( (user) => {
if (user){
this.user = user;
return user
}
}
在组件中,我得到了用户的喜欢,
public user ;
ionViewDidLoad() {
this.auth.getUser().then( (user) => {
this.user = user;
})
.catch( (err) => console.log(err));
}
在html页面中我有{{ user.uid }}
,其中uid是user
对象的属性。但是我在控制台中收到错误,
Unhandled Promise rejection: Error in ./Home class Home - inline template:9:21 caused by: self.context.user is undefined ;
Zone: <root> ; Task: Promise.then ; Value: Object { _nativeError: Error, originalError: TypeError, context: Object, stack: "" } anonymous/_View_Home0.prototype.detectChangesInternal@Home.ngfactory.js:153:7
只有在解析了promise后才能解析用户对象。直到那时才定义用户。我该如何解决这个问题。我不想将async
与promise一起使用,因为我想处理error
捕获组件。
答案 0 :(得分:1)
您可以在视图中使用 elvis运算符,因此如果user
属性仍然为null,则Angular不会尝试访问uid
属性。
{{ user?.uid }}