Угловой экземпляр службы проверки - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь реализовать canDeactivate охрану.Для этого мне нужно проверить свойства экземпляра службы на компоненте.Однако, поскольку эта служба может быть введена с использованием разных псевдонимов, я пытаюсь проверить все свойства, чтобы быть экземпляром службы.

canDeactivate(
    component: Component,
    currentRoute: ActivatedRouteSnapshot,
    currentState: RouterStateSnapshot,
    nextState ? : RouterStateSnapshot
): Observable<boolean> | Promise<boolean> | boolean {

    let tabsService;

    const componentProps = Object.entries(component);

    console.log(componentProps);

    for (let i = 0; i < componentProps.length; i++) {
        if (componentProps[1] instanceof TabsService) {
            console.log(true);
            tabsService = componentProps[1];
            break;
        }

        console.log(componentProps[1] instanceof TabsService);
    }

    ...
}

Однако это приводит ко всем false s. enter image description here

Как мне это сделать?Или я должен получить экземпляр по-другому?Я знаю, что плохо называть одну вещь в разных псевдонимах, но это неизбежно с тоннами DI и командной разработкой (IMHO).

1 Ответ

0 голосов
/ 04 марта 2019

Это должно быть componentProps[i][1] везде вместо componentProps[1], не так ли?

...