A lógica pros dois não deveria ser parecida? Eu quero entender, porque em um optamos por colocar no OnInit e no outro no constructor?
Qualquer dúvida, olha o meu header:
import { Component } from '@angular/core';
import { Observable } from 'rxjs';
import { User } from '../user/user';
import { UserService } from '../user/user.service';
import { Router } from '@angular/router';
@Component({
selector: 'ap-header',
templateUrl: './header.component.html'
})
export class HeaderComponent {
user$: Observable<User>;
constructor(private userService: UserService, private router: Router) {
this.user$ = userService.getUser();
}
logout() {
this.userService.logout();
this.router.navigate(['']);
}
}