В Angular (v5.2) у меня есть реализация резольвера для маршрутизатора.
@Injectable()
export class MyCustomRouteResolver implements Resolve<Observable<String>> {
resolve(router: ActivatedRouteSnapshot, routerState: RouterStateSnapshot): Observable<String> {
let componentName:string = (<Type<any>>router.component).name; //gives the class name of the component
//some logic
}
}
Мой AngularComponent является наследником класса BaseComponent, который имеет функцию getId().
Теперь, когда я пытаюсь под кодом
if (router.component instanceof BaseComponent){
//some logic
}
, указанное выше условие не выполняется. Как мне получить ссылку на BaseComponent, чтобы вызвать функцию getId()? Что-то вроде ниже
let baseComp:BaseComponent = (<BaseComponent>)router.component;
console.info(baseComp.getId());
да, я хочу вызвать это из резолвера.





вы хотите вызвать метод внутри базового компонента из преобразователя?