我有一个如下的类,它没有用@Injectable
注释export class A extends B {
calculateTotal(): number {
//Implementation
}
}
上面的函数calculateTotal需要使用一个用@Injectable注释的服务,以便能够获得一些值来执行一些总计。问题是:将该服务用于该类是否可以?
阿什利
答案 0 :(得分:1)
有一种方法可以将SomeService
个实例注入class A
。我使用的那个,例如在Ionic 2中是:
@Component
装饰器添加到其定义中,并将providers
元数据添加到其中; class A
定义文件中的服务定义; class A
添加构造函数方法,并将服务实例声明为参数。例如,假设服务类名为SomeService
,并且在与当前源文件相同的目录中的文件some.service.ts
中定义:
import { Component } from '@angular/core';
import { SomeService } from './some.service';
@Component({
providers: [ SomeService ]
})
export class A extends B {
constructor( public s:SomeService ){}
otherMethod(){
this.s; // SomeService is accessible like this
}
}
the official docs中提供了更多信息。