Reputation: 7235
Why isn't id
available in the below guard?
@Injectable()
export class ProjectDetailsGuard implements CanActivate {
constructor(private activatedRoute: ActivatedRoute) { }
canActivate() {
const id = this.activatedRoute.snapshot.params['id'];
console.log(id); // <-- undefined
}
}
The same code works perfectly when implemented inside components.
Upvotes: 5
Views: 2791
Reputation: 4077
The ActivatedRoute
can provide params only after the route is activated. If need to get params
before it is activated i.e in canActivate
method, try with ActivatedRouteSnapshot
canActivate(activatedRoute: ActivatedRouteSnapshot) {
const id = activatedRoute.params['id'];
console.log(id);
}
Upvotes: 12