#angular #typescript #dependency-injection #nebular #ngx-admin
#angular #typescript #внедрение зависимостей #небулярный #ngx-администратор
Вопрос:
Я знаю о шаблоне внедрения DI в angular, но теперь я реализую Nebular, поэтому класс должен быть расширен, поэтому в этом случае невозможно использовать конструктор (учитывая, что он никогда не работал с супер-вызовами)
Проблема в том
this.authenticationService
равно нулю, несмотря на добавление в provider.
Пожалуйста, помогите мне решить эту проблему или дайте мне знать, как внедрить сервис в этом случае без конструктора.
Ответ №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.
Комментарии:
1. спасибо @dipen, но прочитал его там и его дубликат
Ответ №2:
вы должны ввести все параметры в дочерний конструктор, снова вызвать super() с параметрами следующим образом.
export class ChildComponent extends ParentComponent {
constructor(prentDepService1:any,prentDepService2:any)
{
super(prentDepService1,prentDepService2);
}
}