我找不到如何从 child class 访问 DI 属性

I cannot find how I can access DI properties from a child class

我已经在我的 angular 应用程序上实施了 this 方法并且 login/registration 正在运行。

现在我想在我的客户 registration/login 组件初始化时向 运行 OnInit 添加一个函数。

Specifically I wish to use/inject

  1. 我的服务
  2. ActivatedRoute/ActivatedRouteSnapshot 访问两个组件的 url 参数。
  3. 位置策略

into my child components (LoginComponent and RegistrationComponent) because they all derive from NbLoginComponent and NbRegisterComponent respectively

这是我的register.component.ts

export class NgxRegisterComponent extends NbRegisterComponent {}

这是我的 NbRegisterComponent

export declare class NbRegisterComponent {

    constructor(
        service: NbAuthService, 
        options: {}, 
        cd: ChangeDetectorRef, 
        router: Router);

    register(): void;

    getConfigValue(key: string): any;

    static ɵfac: ɵngcc0.ɵɵFactoryDef<NbRegisterComponent>;

    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<NbRegisterComponent, "nb-register", never, {}, {}, never>;
}

我无法在 NbRegisterComponent 上使用 Injector,因为构造函数不接受任何属性,不接受参数。

此外,我尝试在 NbRegisterComponent 中声明受保护的成员并将其添加到构造函数中

protected myService : MyService

然后在 child class、RegisterComponent 中,我将属性添加到构造函数和 Super() 的参数中,但注入的属性都是 null/undefined。

任何帮助都会大有帮助。

呵呵,

在子组件中,我为所有 objects/properties 需要的

添加了提供者列表
@Component({
  //...
  providers: [
    {provide: VisitsService, useClass : VisitsService},
  ]
})

在此之后,在子组件的构造函数中,我将 @Inject() 函数附加为

  constructor(
    @Inject(ActivatedRoute)activateRoute : ActivatedRoute,
    @Inject(VisitsService) protected visitService: VisitsService,    
  ){
    super(
      activateRoute, 
      visitService);
  }

现在一切正常。

Oh! remember the parent components also injected these properties to its constructor and the order of arguments matters.