I have a <a> tag like below, 
<a [routerLink]="[/Person']">Person</a>
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:
<a [routerLink]="['/Person', person.id]">Person</a>
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With