typescript - Hvorfor løkker de gjennom ruteparametere i denne Angular-veiledningen?


Jeg så gjennom Angular 2-opplæringen om ruting. På et tidspunkt legger de til en rute /detail/:id og legger til en ngOnInit()-metode for å håndtere denne ruten og, spesielt, for å hente :id-parameteren:

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

Delen jeg ikke forstår er hvorfor de looper gjennom ruteparametere? Siden det bare kan være én ID, er det ikke mulig å få den ved å bruke this.route.params['id']?

Også, hvis det virkelig var flere ID-er, hva ville poenget være med å løkke gjennom dem siden hver nye helt bare ville erstatte den forrige?

Svar #1

Når ruten endres på en måte som kun parametere endres (for eksempel id i /somepath/:id/otherPath), navigerer ikke ruteren bort og tilbake til den samme komponenten, men beholder i stedet den samme komponenten og sender ut en parameterendringshendelse.

For hver hendelse blir (params:Params) => { ... } utført.

Svar #2

For å hente enkelt Id kan du også bruke dette,

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

Relaterte artikler