无法在角度2中获得喷射器

时间:2017-05-23 18:39:20

标签: angular typescript singleton angular2-di

我有DrawingDataService包含我的数据数组和绘制此数据的不同工具。我希望在我的所有工具中使用DrawingDataService像singleton一样。

我在AppModule提供程序列表中设置DrawingDataService(以单例实例制作):

@NgModule({
declarations: [
    AppComponent
],
imports: [
    BrowserModule,
    FormsModule,
    HttpModule
],
providers: [
    DrawingDataService
],
bootstrap: [AppComponent]
})
export class AppModule { }

然后我在我的工具中添加注射器:

export class LineTool extends BaseTool {

constructor(private injector: Injector) {

    super();

    let drawingDataService2 = this.injector.get(DrawingDataService);

它告诉我this.injector为空。 为存储数据制作单例服务是一种好习惯吗?

1 个答案:

答案 0 :(得分:0)

尝试以下一种方式执行此操作:

constuctor( private drawingDataService: DrawingDataService)

您可以通过下一种方式使用它:

this.drawingDataService.someMethod()