2016-10-22 2 views
1

나는 사용자 인증을 처리하는 서비스를 가지고 있습니다. auth 데이터베이스에서 사용자 세부 정보를 가져 오는 서비스입니다.이오닉 프로젝트에서의 약속 처리

public user ; 
    ionViewDidLoad() { 
    this.auth.getUser().then((user) => { 
     this.user = user; 
    }) 
    .catch((err) => console.log(err)); 
    } 

그리고 HTML 페이지에서

getUser(){ 
    return this.storage.get('user').then((user) => { 
    if (user){ 
     this.user = user; 
     return user 
    } 
} 

그리고 사용자처럼 얻을 구성 요소의

, 나는 UID가 user 객체의 속성입니다 {{ user.uid }} 있습니다. 콘솔에서 오류가 발생합니다.

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/[email protected]:153:7 

사용자 개체는 약속이 해결 된 후에 만 ​​해결됩니다. 그때까지는 사용자가 정의되지 않았습니다. 이 문제를 어떻게 해결할 수 있습니까? 나는 error을 잡아서 컴포넌트로 잡고 싶어서 약속 한대로 돌아 오는 async을 사용하고 싶지 않습니다. user 속성이 여전히 null의 경우, 각도가 uid 속성에 액세스하려고하지 않도록

답변

1

당신은, 당신의보기에서 엘비스 연산자를 사용할 수 있습니다.

{{ user?.uid }}

+1

감사합니다. 도움이되었습니다. 이것에 관한 문서가 있다면 더 좋을 것입니다. – raj

+0

다행히 도울 수 있어요 :) – sebaferreras