Pass к маршрутизатору ссылке:
<a [routerLink]="['/Person', person.id]">Person</a>
Ручка в компоненте :
this.route.params.subscribe(
(params : Params) => {
this.id = params["id"];
}
);
Второй способ:
this.route.params.forEach(
(params : Params) => {
this.id = params["id"];
}
);
В этом примере вы должны вводить ActivatedRoute
(например, как маршрут собственности) так:
constructor(private route : ActivatedRoute) {}
Если вы подписались - это очень важно отказаться от подписки Observable
для предотвращения утечки памяти.
Полный пример:
export class SimpleComponent implements OnInit, OnDestroy {
private id : number;
private route$ : Subscription;
constructor(private route : ActivatedRoute) {}
ngOnInit() {
this.route$ = this.route.params.subscribe(
(params : Params) => {
this.id = +params["id"]; // cast to number
}
);
}
ngOnDestroy() {
if(this.route$) this.route$.unsubscribe();
}
}
Config:
export const routes = [
...
{ path : 'Person/:id', component : ...},
...
];
Кроме того, @RouteConfig
является устаревшим.
Там нет '@ RouteConfig'. Какую версию Angular2 вы используете? –