У меня есть два компонента panelComponent (родительский) и dashboardComponent (дочерний).
PanelComponent имеет подписку на службу в своем ngOninit, и ее возвращаемое значение используется внутри дочернего компонента ngOninit.
Проблема в том, что при начальном запуске моего childs ngOninit выполняется до того, как служба Parents возвращает значение, и я получаю нулевой результат в дочернем компоненте.
Как решить эту проблему?
panelComponent.ts: -
ngOnInit() {
this.panelService.getUserProfile().subscribe(
res => {
this.panelService.userDetails = res;
this.router.navigate(['panel/dashboard'])
},
err => {
console.log(err);
},
);
}
panelService.ts: -
export class PanelService {
userDetails;
constructor(private http: HttpClient) {
}
getUserProfile() {
const httpOptions = {
headers: new HttpHeaders({
'Authorization': `Bearer ${localStorage.getItem('token')}`
})
};
return this.http.get('/api/UserProfile/UserProfile', httpOptions);
}
dashboardComponent.ts: -
ngOnInit() {
console.log(this.panelService.userDetails)
}