Je veux donc recharger l'application après avoir navigué vers un itinéraire spécifique ..
J'utilise router.navigate pour naviguer vers un certain itinéraire en fonction du rôle de l'utilisateur et cela fonctionne bien, mais je dois recharger la page après le routage si cela provient de la page de connexion (pas à chaque fois que l'utilisateur ouvre cet itinéraire) - et le rechargement ici consiste à mettre à jour langue de la page en fonction de la langue de l'utilisateur
donc ce que j'ai essayé de faire c'est
else if(this.sp.role === 'Admin') {
console.log('ooo')
this.router.navigate(['/admin/dashboard']);
this.window.location.reload();
mais qui recharge la page de connexion
Facile
this.router.navigate(['path/to'])
.then(() => {
window.location.reload();
});
Ce que vous pourriez faire, c'est déplacer la logique de rechargement vers le composant réel qui doit être rechargé. Vous pouvez vous abonner à l'événement NavigationEnd, puis vérifier l'itinéraire dont vous venez, par exemple.
this.router.events
.pipe(
filter(value => value instanceof NavigationEnd),
)
.subscribe(event => {
if (event.url === 'http://mypreviousUrl.com') {
this.window.location.reload();
}
});