Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

303
Visualizações
Cómo obtener datos de ruta en el componente de la aplicación en Angular 2

He definido algunos datos de ruta en el módulo de enrutamiento de mi aplicación, como se muestra a continuación:

 const appRoutes:Routes = [ {path: '', component: LoginComponent, data:[{PageName:"Login Page"}]}]

Quiero obtener los datos globalmente para poder usar appRoutes en app.component.ts para obtener la información relacionada con la redirección de URL como se muestra a continuación:

 export class AppComponent { title = 'Welcome'; constructor(public router: Router, public authenticationService: AuthenticationService) { this.router.events.subscribe(event => { console.log("Url",event.urlAfterRedirects); console.log("Page Name", router[PageName]); //Not working }

Intenté inyectar ActivatedRoute pero no se actualiza después de cada redirección.

¿Existe de todos modos, donde puedo configurar el nombre de la página y obtenerlo en app.component.ts global?

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Intenta filter y repetir tus eventos en lugar de subscribe

 constructor(router:Router, route:ActivatedRoute) { router.events .filter(e => e instanceof NavigationEnd) .forEach(e => { this.title = route.root.firstChild.snapshot.data['PageName']; }); }

Consulte la siguiente demostración de trabajo: https://plnkr.co/edit/rBToHRaukDlrSKcLGavh?p=info

about 4 years ago · Santiago Trujillo Relatório

0

Si hubiera enrutado estáticamente usando el objeto Router como se muestra a continuación:

 { path: '', pathMatch: 'full', component: NameComponent, data: { variableName: 'variableValue' } },

En ngOnInit() puede usar el objeto ActivatedRoute para recuperar los datos que pasó de la definición del enrutador:

 ngOnInit() { this.localVariable = this.route.snapshot.data['variableName']; }

Obs: ¡Estoy usando Angular 5!

about 4 years ago · Santiago Trujillo Relatório

0

Este código fue escrito por Todd Motto (experto en desarrollo de Google) para acceder a los datos de la ruta en un componente principal o componente de la aplicación. Funciona como una joya.

 import { ActivatedRoute, NavigationEnd, Router } from '@angular/router' import { filter, map, mergeMap } from 'rxjs/operators' constructor(private route: ActivatedRoute, private router: Router) {} ngOnInit() { this.router.events.pipe( filter(event => event instanceof NavigationEnd), map(() => this.route), map(route => { while (route.firstChild) route = route.firstChild return route }), filter(route => route.outlet === 'primary'), mergeMap(route => route.data) ).subscribe(data => console.log('data', data) ) }

Ver: https://ultimatecourses.com/blog/dynamic-page-titles-angular-2-router-events

En su ejemplo, está usando datos de ruta para configurar el título de la página en el componente de la aplicación.

¡Nunca lo sabré por qué acceder a los datos de la ruta en un padre es tan complicado!

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda