Espero que ajude alguém.
A pergunta acima afirma que o valor do parâmetro de consulta é necessário após o redirecionamento da página e podemos assumir que o valor do instantâneo (a alternativa não observável) seria suficiente.
Ninguém aqui mencionou snapshot.paramMap.get a partir da documentação oficial .
this.route.snapshot.paramMap.get('id')
Portanto, antes de enviá-lo, adicione isso no componente de envio / redirecionamento:
import { Router } from '@angular/router';
em seguida, redirecione como (documentado aqui ):
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
ou simplesmente:
this.router.navigate(['/heroes', heroId ]);
Verifique se você adicionou isso no seu módulo de roteamento, conforme documentado aqui :
{ path: 'hero/:id', component: HeroDetailComponent }
E, finalmente, no seu componente que precisa usar o parâmetro de consulta
adicione importações (documentadas aqui ):
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
injetar ActivatedRoute
(a documentação também importa switchMap e também injeta Router e HeroService - mas são necessários apenas para alternativa observável - NÃO são necessários quando você usa a alternativa de instantâneo, como no nosso caso):
constructor(
private route: ActivatedRoute
) {}
OBSERVAÇÃO: SE VOCÊ ADICIONAR O MÓDULO DE ROTAÇÃO A UM MÓDULO DE RECURSO (MOSTRADO NA DOCUMENTAÇÃO) VERIFIQUE QUE EM APP.MODULE.ts ESTE MÓDULO DE ROTAÇÃO SEJA ANTES DO AppRoutingModule (ou outro arquivo com rotas de aplicativos no nível raiz) EM IMPORTAÇÕES: []. OUTRAS ROTAS DE RECURSOS NÃO SERÃO ENCONTRADAS (COMO VIRAM APÓS {path: '**', redirectTo: '/ not-found'} e você verá apenas a mensagem não encontrada).
@RouteConfig
para issopath
?