web-dev-qa-db-fra.com

angular routeur naviguer puis recharger

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

8
Omar Abdelhady

Facile

this.router.navigate(['path/to'])
  .then(() => {
    window.location.reload();
  });
28
Vlad

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();
  }
});
6
danielreiser