Person So I want to pass the person.id to this /Person router. How can I pass it & handle it on @RouteConfig like params in Angular 1
Person So I want to pass the person.id to this /Person router. How can I pass it & handle it on @RouteConfig like params in Angular 1
Pass to router link:
Person Handle in component:
this.route.params.subscribe( (params : Params) => { this.id = params["id"]; } ); Second way:
this.route.params.forEach( (params : Params) => { this.id = params["id"]; } ); In this example you have to inject ActivatedRoute (e.g as route property) like that:
constructor(private route : ActivatedRoute) {} If you subscribe - it is important to unsubscribe Observable to prevent memory leaks.
Full example:
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 : ...}, ... ]; Also, @RouteConfig is deprecated.
You can pass it like
Person In my case, directive [routerLink] didn't work for me. So, I had to do it programmatically.
Component template:
Edit Component Class:
import { Router } from '@angular/router'; export class PersonComponent{ constructor(private _route: Router){ } goToEdit(id){ this._route.navigate(['Person/' + id]); } }