Changer l'état d'une variable après un navigateByUrl
Bonjour,
je souhaite changer l'état d'une variable après s'être authentifié, voici mon code component.html qui est ma page d'accueil (elle est vide)
Code:
1 2 3 4 5
|
<div id="brik_central">
<h1 *ngIf="isAdmin" style="background:red">ADMIN</h1>
<router-outlet></router-outlet>
</div> |
dans un autre composant j'ai mis un formulaire d'authentification:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<form #f="ngForm" (ngSubmit)="onLogin(f.value)">
<div class="erreur" *ngIf="mode==1">
<strong>erreur de formulaire</strong>
</div>
<mat-form-field>
<input ngModel="" matInput placeholder="login" name="username" required>
</mat-form-field>
<mat-form-field>
<input ngModel="" matInput placeholder="password" name="password" required>
</mat-form-field>
<br/>
<button mat-raised-button type="submit" color="accent" >Login</button>
<br/>
<button mat-raised-button type="submit" color="primary" >Register</button>
</form> |
voici la méthode onLogin:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
onLogin(user){// console.log("on login==="+JSON.stringify(user)); //verifier les champs remplis
this.authService.login(user).subscribe(resp=>{
let jwt=resp.headers.get('Authorization');
this.authService.saveToken(jwt);
this.router.navigateByUrl('/');
},err=>{
this.mode =1;
})
} |
Cette méthode récupère le jeton jwt, et change le router-outlet:
Code:
1 2
|
this.router.navigateByUrl('/'); |
pour le moment mon but est simple, si j'ai un jwt en local storage je souhaite que isAdmin est à true.
Mais pour le moment isAdmin est toujours à false:
voici mon component.ts
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
export class AppComponent implements OnInit{
ngOnInit() {
localStorage.getItem("jwt") ? console.log("jwt ok") :console.log(new Date());
this.isAdmin = false;
}
title = 'tdolist';
events: string[] = [];
opened: boolean;
isAdmin:boolean = false;
constructor(private authService:AuthenticationService,private router:Router){
}
deconnexion(){
this.authService.logOut();
this.router.navigateByUrl("/login");
}
} |
Que faut t'il faire pour que isAdmin soit à true ?
je dois utiliser le @input et @output pour y arriver ?
merci d'avance de vos réponses :)