我找不到如何从 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
- 我的服务
- ActivatedRoute/ActivatedRouteSnapshot 访问两个组件的 url 参数。
- 位置策略
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.
我已经在我的 angular 应用程序上实施了 this 方法并且 login/registration 正在运行。
现在我想在我的客户 registration/login 组件初始化时向 运行 OnInit 添加一个函数。
Specifically I wish to use/inject
- 我的服务
- ActivatedRoute/ActivatedRouteSnapshot 访问两个组件的 url 参数。
- 位置策略
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.