如何扩展使用直接注入的类

时间:2016-07-06 10:10:42

标签: typescript angular extending

希望对于你们中的一些人来说,这应该是一个相对简单的问题......

我正在尝试扩展组件,但我不确定如何处理新组件的构造方法。

以下是我的基本组件

import { Component, OnInit }  from '@angular/core';
import { ControlsService }    from '../controls.service'

@Component({
  moduleId      : module.id,
  selector      : 'app-base',
  templateUrl   : 'base.component.html',
  styleUrls     : ['base.component.css'],
  providers     : [ControlsService]
})
export class BaseComponent implements OnInit {

  constructor(_controlService:ControlsService) {}

  ngOnInit() {

     // console.log(this._controlService.getControlByID('B5EE385D-1D6A-335A-1E94-2F857428A6FB'))  

  }

}

以下是我的新组件

import { Component, OnInit }        from '@angular/core';
import { MdToolbar }                from '@angular2-material/toolbar';
import { MdIcon, MdIconRegistry}    from '@angular2-material/icon';
import { PanelComponent }           from '../panel/panel.component'
import { BaseComponent }            from '../base/base.component'
import { ControlsService }          from '../controls.service'

@Component({
  moduleId      : module.id,
  selector      : 'app-workbench',
  templateUrl   : 'workbench.component.html',
  styleUrls     : ['workbench.component.css'],
  directives    : [MdToolbar,MdIcon,PanelComponent],
  providers     : [MdIconRegistrym,ControlsService]
})
export class WorkbenchComponent extends BaseComponent implements OnInit{

  workbenchTitle = "Selection Category "

  constructor(_controlService:ControlsService) 
  {
      super(this._controlService)
  }

  ngOnInit() {



  }


}

我需要将_controlService放在基本组件中,因为此服务将检索控件参数,但似乎如果我在基本组件构造函数方法中创建服务,那么我必须将其传递到基本组件中新组件。我宁愿不这样做,但似乎我可能不得不这样做。

正在返回给我的错误是: (17,21):提供的参数与呼叫目标的任何签名都不匹配。

有人能指出我如何正确扩展这个基本组件的正确方向。

谢谢!

1 个答案:

答案 0 :(得分:0)

this.无效

export class WorkbenchComponent extends BaseComponent implements OnInit{
  constructor(_controlService:ControlsService) 
  {
      // super(this._controlService)
      // should be
      super(_controlService)
  }
}