Маршрутизатор, вызывающий петлю охранника маршрута

Я пытаюсь использовать защиту маршрута и распознаватель маршрута, которые используют вызов API, на который я подписываюсь по разным причинам. По сути, мой охранник маршрута проверяет, есть ли данные для страницы, на которую я пытаюсь перейти, и мой распознаватель затем получает указанные данные.

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
    let url = state.url; // where i'm trying to go
    let id = route.params['id'];
    this.dsProject.getChildProjectsByParentProject(id).subscribe(
        data => {
            if (data.length < 1) {
                this.router.navigate(['/SoftwareHome']); // back to original page
            } else {
                this.router.navigate([url]);
            }
        },
        err => {
        },
        () => {
        }
    )
    return true;
}

перерыв

resolve(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
    // get the current route and route state as parameters which are passed automatically
) {
    const id = route.params['id'];
    return this.dsProject.getChildProjectsByParentProject(id);
    // pass the API down to the component to be grabbed via snapshot
}

0 ответов

Другие вопросы по тегам