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'];
