markdown Router Resolver avec un store

Posted

tags:

篇首语:本文由小常识网(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的主要内容,如果未能解决你的问题,请参考以下文章

markdown knot-resolver添加信任锚#dns

markdown react-router #react

如何在 ui-router 解析器中重定向?

使用 dns.resolver (pythondns) 设置特定的 DNS 服务器

spring缓存自定义resolver

spring缓存自定义resolver