当父级没有提供者时,如何为Angular 2中的子类进行依赖注入?
import { NgModule, Component, OnInit} from '@angular/core';
import { EntityrecordApi } from '../sdk/services/custom';
import { Injectable, Inject } from '@angular/core';
import { FormlyFieldSelect } from 'ng2-formly';
@Component({
selector: 'formly-field-lookup-select',
providers: [EntityrecordApi],
template:'<div>Test</div>'
})
export class LookupSelect extends FormlyFieldSelect implements OnInit{
constructor(@Inject(EntityrecordApi) private _EntityrecordApi: EntityrecordApi) {
super()
}
ngOnInit(): void {
//Do Something here
this._EntityrecordApi.find()
}
}
在上面的例子中,我总是将_EntityrecordApi视为未定义。你能帮忙吗?
Augury中的组件层次结构图
答案 0 :(得分:0)
即使父类有提供者,你也不会得到它。装饰器不会在Angular 2中继承。
您必须将服务添加到组件的providers
(如果您希望每个组件实例有1个服务实例)。或包含该组件的模块(如果您想在整个应用程序中使用1个服务实例)。