Angular 2子组件中的依赖注入

时间:2016-11-21 04:06:53

标签: angular

当父级没有提供者时,如何为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()
  }
}

FormlyFieldSelect

在上面的例子中,我总是将_EntityrecordApi视为未定义。你能帮忙吗?

Augury中的组件层次结构图

enter image description here

1 个答案:

答案 0 :(得分:0)

即使父类有提供者,你也不会得到它。装饰器不会在Angular 2中继承。

您必须将服务添加到组件的providers(如果您希望每个组件实例有1个服务实例)。或包含该组件的模块(如果您想在整个应用程序中使用1个服务实例)。