Problem Statement
What is a Resolver and why would you use one?
Explanation
A Resolver fetches data before a route activates so the component has what it needs on first paint (no empty flicker). If the resolver errors, you can redirect or show an error route.
Code Solution
SolutionRead Only
@Injectable({ providedIn:'root' })
export class UserResolver implements Resolve<User> {
constructor(private api: Api) {}
resolve(route: ActivatedRouteSnapshot){
return this.api.getUser(route.paramMap.get('id')!);
}
}
{ path:'users/:id', component: UserDetailComponent, resolve:{ user: UserResolver } }