2017-09-18 3 views
0

私はインターフェイスでfirstnameとlastnameのような追加の属性を持つ作業ユーザー登録があります。これをAngularインターフェイスとして設定し、Angular2Tokenの例のGETリクエストを使用してuserdataを呼び出すと、すべてのデータが返されます。Angular2Tokenは追加のユーザーインターフェイスからのデータを使用します

export interface User {last_name: string, first_name: string}

auth.service.ts

user: User[]; 

getProfileData() { 
return this._tokenService.get(this.userDataUrl + '.json') 
    .map(res => res.json()).subscribe(
    data => { 
     this.userSignedIn$.next(true); 
     this.user = data.user; 
     console.log(data); 
     return data 
    }, 
    error => {console.log(error) 
    } 
); 
} 

私の考えでは、ユーザーが自分のデータを編集できる形でプロフィールページにJSONデータをロードするようになりました。しかし、私の既存の方法では、私はインターフェイスからデータにアクセスすることはできません。私はこのデータを得るために何かを逃したところ、誰かが私を見ることができる場合

profile.component.ts

getUserData() { 
    this.authService.getProfileData(); 
} 
ngOnInit() { 
    this.getUserData(); 
} 

は素晴らしいことです。ありがとう!

答えて

1

最初にプロバイダにユーザーをキャッシュする場合は、.do()を使用する必要があります。

サービスでサービスコールを購読しないでください。コンポーネントで遅延呼び出しを利用するようにしてください。

getProfileData() { 
    return this._tokenService.get(this.userDataUrl + '.json') 
    .map(res => res.json()) 
    .do(data => { 
     this.userSignedIn$.next(true); 
     this.user = data.user; 
     console.log(data); 
     return data 
    }); 
} 




getUserData() { 
    this.authService.getProfileData().subscribe(.....).catch(...); 
} 
+0

ありがとうございました。 – gjasula

関連する問題