1
resposta

Como recarregar a página novamente em um "routerLink"

Boa noite,

Gostaria de saber se existe alguma forma de fazer com que um componente meu especifico seja sempre recarregado ao clicar no link para acessar a página.

Exemplo:

Imagine que tenha um menu lateral com uma lista de páginas, ao clicar em uma página, ela será aberta no centro da tela, até ae beleza, porém, se eu clicar novamente no mesmo routerlink, a página não é recriada, existe alguma forma para forçar ela recriar o componente mesmo já estando ativa?

abs para todos :)

1 resposta

Fala ai Bruno, beleza? Bom, acho que poderia dar mais detalhes reais da necessidade, pois esse é algo incomum de se fazer, não acho que seja o melhor cenário, talvez possamos resolver o problema de uma maneira mais elegante.

Uma solução seria:

  1. Vá onde você declara suas rotas e passe um parâmetro para eles:
RouterModule.forRoot(appRoutes, { onSameUrlNavigation: 'reload' })
  1. Dentro do seu componente que precisa ser remontado, injete o Router e se inscreva nos eventos:
constructor(private router: Router) { }

ngOnInit() {
    this.router.events.subscribe(event => {
        if (event instanceof NavigationEnd) {
            console.log('navegação terminou');
        }
    });
}

Após a navegação terminar você pode fazer o que precisa.

Espero ter ajudado