-1

我知道有角度的DI 注入模式,但现在我正在实现Nebular所以需要扩展类,因此在这种情况下无法使用构造函数(鉴于从未使用过超级调用)

在此处输入图像描述

问题是

this.authenticationService

尽管添加了提供程序,但仍为 null。

请帮我解决这个问题,或者让我知道在这种情况下如何在没有构造函数的情况下注入服务。

4

2 回答 2

1

将您的构造函数更新为:

export class NgxLoginCustomComponent extends NbLoginComponent {
    constructor(
        nbAuthservice: NbAuthService,
        @Inject(NB_AUTH_OPTIONS) options = {},
        cd: ChangeDetectionRef,
        router: Router,
        authService: AuthenticationService
    ) {
        super(nbAuthservice, options, cd, router, authService);
    }
}

在 Nebular 的存储库中参考这个问题

于 2020-09-08T03:16:11.790 回答
0

您必须在子构造函数中注入所有参数,再次使用参数调用 super(),如下所示。

export class ChildComponent extends ParentComponent {

   constructor(prentDepService1:any,prentDepService2:any)
   {
     super(prentDepService1,prentDepService2);
   }
}
于 2020-09-03T07:32:07.013 回答