Pesquisa de site

typescript - Lendo um parâmetro de string de consulta dentro de um guard Angular 4?


Estou tentando ler um parâmetro de string de consulta dentro do método canActivate de um guardião do Angular. Infelizmente, o parâmetro queryParams tanto de ActivatedRouteSnapshot quanto de RouterStateSnapshot está vazio, mesmo que a string de consulta exista.

Exemplo: bla.com/?uid=123

Esse parâmetro de string de consulta pode ser enviado para qualquer URL e eu quero que meu guard possa analisá-lo.

Resposta #1

URL de exemplo: http://example.com/oper/sale?code=seu_código_aqui

import { ActivatedRouteSnapshot } from "@angular/router";
...

canActivate(route: ActivatedRouteSnapshot) {
    console.log("code", route.queryParams.code);
}

Resposta #2

Ou se você estiver usando parâmetro na sua rota:

canActivate(route: ActivatedRouteSnapshot) {
  console.log("Id:", route.params['uid']);
}

Artigos relacionados