Búsqueda de sitios web

typescript - ¿Por qué hacen un bucle sobre los parámetros de ruta en este tutorial de Angular?


Estaba revisando el tutorial de Angular 2 sobre enrutamiento. En algún momento agregan una ruta /detail/:id y añaden un método ngOnInit() para manejar esta ruta y, en particular, para obtener el parámetro :id:

ngOnInit(): void {
  this.route.params.forEach((params: Params) => {
    let id = +params['id'];
    this.heroService.getHero(id)
      .then(hero => this.hero = hero);
  });
}

La parte que no entiendo es por qué están haciendo un bucle sobre los parámetros de la ruta. Dado que solo puede haber un ID, ¿no es posible obtenerlo usando this.route.params['id']?

Además, si realmente hubiera varios IDs, ¿cuál sería el sentido de recorrerlos si cada nuevo héroe solo reemplazaría al anterior?

Respuesta #1

Cuando la ruta se cambia de una manera que solo cambian los parámetros (por ejemplo id en /somepath/:id/otherPath), el enrutador no navega fuera y vuelve al mismo componente, sino que mantiene el mismo componente y emite un evento de cambio de parámetro.

Para cada evento (params:Params) => { ... } se ejecuta.

Respuesta #2

Para recuperar un solo Id, también puedes usar esto,

let id = +this.route.snapshot.params['id'];

Artículos relacionados