'How to get parameters from the Angular ActivatedRoute
I'm trying to get the prameter :id from my activated route using observables. When I print params on the console I get the right values for :id. But it's not the case for this.id. I get the value NaN. Can you tell me what is the problem
export class RecipeEditComponent implements OnInit {
id: number;
editMode = false;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.params.subscribe(
(params: {id: string}) => {
this.id = +params.id;
console.log(this.id);
}
);
}
}
Solution 1:[1]
Change to this.id = +params.get('id').
You should use the method get() because it returns a single value for the given parameter id.
You were getting an error because params is not a key with id as a value.
export class RecipeEditComponent implements OnInit {
id: number;
editMode = false;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
// paramMap replaces params in Angular v4+
this.route.paramMap.subscribe(params: ParamMap => {
this.id = +params.get('id');
console.log(this.id);
});
}
Solution 2:[2]
I think the following code is going to work in your case:
ngOnInit() {
this.heroes$ = this.route.paramMap.pipe(
switchMap(params => {
// (+) before `params.get()` turns the string into a number
this.selectedId = +params.get('id');
return this.service.getHeroes();
})
);
}
Also you can try this:
this.sessionId = this.route
.queryParamMap
.pipe(map(params => params.get('id') || 'None'));
Solution 3:[3]
The problem was in the route definition: putting : instead of ::
Solution 4:[4]
Retrieve the params like this:
ngOnInit() {
this.route.params.subscribe(
(params: Params) => {
this.id = +params["id"];
console.log(this.id);
}
);
} }
Solution 5:[5]
id: number;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.id = this.route.snapshot.params(['id'])
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Muhammad Abdullah Shafiq |
| Solution 3 | faouzi Ch |
| Solution 4 | RadekF |
| Solution 5 | Ahmed Alqassass |
