Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

402
Vistas
¿Cómo obtener parámetros de consulta de url en Angular 2?

Yo uso angular2.0.0-beta.7. Cuando un componente se carga en una ruta como /path?query=value1 , se redirige a /path . ¿Por qué se eliminaron los parámetros GET? ¿Cómo puedo conservar los parámetros?

Tengo un error en los routers. Si tengo una ruta principal como

 @RouteConfig([ { path: '/todos/...', name: 'TodoMain', component: TodoMainComponent } ])

y mi hijo ruta como

 @RouteConfig([ { path: '/', component: TodoListComponent, name: 'TodoList', useAsDefault:true }, { path: '/:id', component: TodoDetailComponent, name:'TodoDetail' } ])

entonces no puedo obtener parámetros en TodoListComponent. soy capaz de conseguir

 params("/my/path;param1=value1;param2=value2")

pero yo quiero el clasico

 query params("/my/path?param1=value1&param2=value2")
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Al inyectar una instancia de ActivatedRoute , uno puede suscribirse a una variedad de observables, incluidos queryParams y params observables:

 import {Router, ActivatedRoute, Params} from '@angular/router'; import {OnInit, Component} from '@angular/core'; @Component({...}) export class MyComponent implements OnInit { constructor(private activatedRoute: ActivatedRoute) {} ngOnInit() { // Note: Below 'queryParams' can be replaced with 'params' depending on your requirements this.activatedRoute.queryParams.subscribe(params => { const userId = params['userId']; console.log(userId); }); } }

UNA NOTA SOBRE LA BAJA DE SUSCRIPCIÓN

@Reto y @codef0rmer habían señalado con toda razón que, según los documentos oficiales, en este caso no es necesario cancelar la unsubscribe() dentro del método onDestroy() de los componentes. Esto ha sido eliminado de mi ejemplo de código. (vea el cuadro de alerta azul en este tutorial)

over 4 years ago · Santiago Trujillo Denunciar

0

Cuando una URL es así http://stackoverflow.com?param1=value

Puede obtener el parámetro 1 con el siguiente código:

 import { Component, OnInit } from '@angular/core'; import { Router, ActivatedRoute, Params } from '@angular/router'; @Component({ selector: '', templateUrl: './abc.html', styleUrls: ['./abc.less'] }) export class AbcComponent implements OnInit { constructor(private route: ActivatedRoute) { } ngOnInit() { // get param let param1 = this.route.snapshot.queryParams["param1"]; } }
over 4 years ago · Santiago Trujillo Denunciar

0

Aunque la pregunta especifica la versión beta 7 , esta pregunta también aparece como el principal resultado de búsqueda en Google para frases comunes como parámetros de consulta angulares 2 . Por esa razón, aquí hay una respuesta para el enrutador más nuevo (actualmente en alpha.7 ).

La forma en que se leen los parámetros ha cambiado drásticamente. Primero necesita inyectar una dependencia llamada Router en los parámetros de su constructor como:

 constructor(private router: Router) { }

y después de eso, podemos suscribirnos a los parámetros de consulta en nuestro método ngOnInit (el constructor también está bien, pero ngOnInit debe usarse para la capacidad de prueba) como

 this.router .routerState .queryParams .subscribe(params => { this.selectedId = +params['id']; });

En este ejemplo, leemos el ID de parámetro de consulta de una URL como example.com?id=41 .

Todavía hay algunas cosas que notar:

  1. Acceder a la propiedad de params como params['id'] siempre devuelve una cadena , y esto se puede convertir en un número prefijándolo con + .
  2. La razón por la que los parámetros de consulta se recuperan con observable es que permite reutilizar la misma instancia de componente en lugar de cargar una nueva. Cada vez que se cambia el parámetro de consulta, se generará un nuevo evento al que nos hemos suscrito y, por lo tanto, podemos reaccionar ante los cambios en consecuencia.
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda