Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

401
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!