篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Router Resolver avec un store相关的知识,希望对你有一定的参考价值。
```
@Injectable()
export class CourseResolver implements Resolve<Course> {
constructor(
private coursesService: CoursesService,
private store: Store<AppState>) {
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Course> {
const courseId = route.params['id'];
return this.store.pipe(
select(selectCourseById(courseId)), // On selectionne par id
tap(course => { // Si la donnée n'est pas présente dans le store, on dispatch pour faire un appel API via un Effect
if (!course) {
this.store.dispatch(new CourseRequested({courseId}));
}
}),
filter(course => !!course), // Evite d'envoyer undefined au resolver du router si la données n'est pas présente dans le store
first() // Retourne le premier opérateur ici le 'select'
);
}
}
```
以上是关于markdown Router Resolver avec un store的主要内容,如果未能解决你的问题,请参考以下文章