Share data between components using a service in Angular2への質問と私が得た応答。Angular/rxjs/Subject/BehaviorSubject複数のコンポーネント間でhttpサービスデータを共有
サービスプロバイダがGET経由で取得するデータを共有しようとしています。
ngOnInit() {
this.customerPortalUserService.getUserInfo()
.subscribe(
(event: HttpEvent<any>) => {
switch (event.type) {
case HttpEventType.Sent:
break;
case HttpEventType.Response:
this.handleUserData(event.body)
}
},
(err: HttpErrorResponse) => {
if (err.error instanceof Error) {
console.log("Client-side error occured.");
} else {
console.log("Server-side error occured.");
}
}
)
}
handleUserData(data: any){
this.userData = data;
}
CustomerPortalUserService
getUserInfo(){
interface ItemsResponse {
results: string[];
}
return this.http.get<ItemsResponse>(this.userUrl, {
observe: 'response',
headers: new HttpHeaders().set(),
})
}
何ですか:
<CustomerPortalBaseComponent>
<router-outlet>
<CustomerPortalDashboardComponent/>
<DocumentsComponent/>
<router-outlet>
</CustomerPortalBaseComponent>
CustomerPortalBaseComponentは、ユーザ情報を取得するための呼び出しを行うメインルートがCustomerPortalDashboardComponentとDocumentsComponentに行くと、次のように コンポーネント構造がありますCustomerPortalDashboardComponentおよびDocumentsComponentおよびeでuserDataを取得する最善の方法他のコンポーネントが試して取得する前にデータが取得されていることを確認しますか?